본문 바로가기
반응형

전체 글155

fifo cache의 변형 fifo 정책을 따르긴하지만 쫓겨나는 item을 알고 이후 처리가 필요하여 구현 key-value이긴하지만 key가 2개여서 pair로 묶음 Push()에 의해 쫓겨나는 item은 return됨 #include #include #include #include #include #include #include "gtest/gtest.h" using namespace std; struct PairHash { template std::size_t operator () (const std::pair &p) const { return std::hash{}(p.first) ^ std::hash{}(p.second); } }; template class FifoCache { public: explicit FifoCac.. 2022. 2. 1.
ubuntu에 google test (gtest) 설치 후 간단히 test 먼저 소스 설치 sudo apt install libgtest-dev 혹시 cmake가 설치 되어 있지 않다면 cmake도 설치 sudo apt install cmake gtest 설치 cd /usr/src/gtest sudo mkdir build cd build sudo cmake .. sudo make sudo make install 간단한 code #include #include "gtest/gtest.h" using namespace std; TEST(test_name, test) { // test code } 간단히 build g++ test.cpp -lgtest -lgtest_main -lpthread 2022. 2. 1.
boost를 이용한 crc 계산 ubuntu에 boost library 설치하기 sudo apt install libboost-all-dev #include #include #include #include using namespace std; using boost::crc_32_type; int main() { char testStr1[] = "12345678901234567890"; char testStr2[] = "12345678901234567891"; crc_32_type crc; printf("crc size: %d\n", sizeof(unsigned int)); crc.process_bytes(testStr1, sizeof(testStr1)); printf("testStr1 crc: %08x\n", crc.checksum().. 2022. 1. 31.
ifstream, ofstream을 이용한 file 입출력 ifstream, ofstream을 이용한 file 입출력 방법 ifstream의 경우 ios::trunc를 주게되면 open이 되지 않는다. (good()이 false) 결과 부터 보기 not same same 그 다음에 code 보기 - 필요시 fstream:trunc는 제거 #include #include #include #include using namespace std; class FileIo { public: FileIo(void) = delete; explicit FileIo(const std::string& fileName) : fileName(fileName) { file.open(fileName, std::ios::binary | std::ios::in | std::ios::out | .. 2022. 1. 25.
intel tbb::concurrent_queue를 multi level queue로 이용해보기 ubuntu에서는 아래와 같이 설치 필요 * 직접 github에서 받아도 되나 편리한걸 쓰자 sudo apt install libtbb-dev build는 요런식으로.. g++ multi_concurrent_queue.cpp -pthread -ltbb -std=c++14 MAX개(1,000,000)의 Entry class를 push하는 thread를 1, 2, 4개씩, pop 하는 1개의 thread를 생성하여 시간 측정 #include #include #include #include #include #include #include #include #include using namespace std; using std::chrono::system_clock; using std::chrono::durati.. 2022. 1. 9.
intel tbb::concurrent_queue를 이용해보기 ubuntu에서는 아래와 같이 설치 필요 * 직접 github에서 받아도 되나 편리한걸 쓰자 sudo apt install libtbb-dev build는 요런식으로.. g++ concurrent_queue.cpp -pthread -ltbb -std=c++14 stl::queue와 mutex를 이용한 queue와 tbb::concurrent_queue의 비교 MAX개(1,000,000)의 Entry class를 push하는 thread를 1, 2, 4개씩, pop 하는 1개의 thread를 생성하여 시간 측정 #include #include #include #include #include #include #include #include using namespace std; using std::chrono.. 2022. 1. 9.
반응형