хочу сюди!
 

светлана

41 рік, скорпіон, познайомиться з хлопцем у віці 35-50 років

Замітки з міткою «c++»

hash_map.insert vs []

Часто в коде можно увидеть использование конструкции typedef hash_map<Word32, class SomeClass> TSomeHashMap; TSomeHashMap shm; shm[10] = SomeClass(val1, val2); Более оптимальный, в большинстве случаев, следующий код: shm.insert(TSomeHashMap::value_type(10, SomeClass(val1, val2))); Лишние затраты в первом случае получаются из-за того что оператор [] это фактически: (*((shm.insert(TSomeHashMap::value_type(10, SomeClass()))).first)).second = SomeClass(val1, val2); Т.е...

Читати далі...

Атомарные операции Vs Mutex

Сейчас наступило время многоядерных и многопроцессорных систем (даже в последних смартфонах уже 2+ ядер)Основная проблема многопроцессорного программирование это проблемы одновременного доступа к данным...Доступ к данным можно блокировать методом mutex-a (spin lock)pthread_mutex_lock(&mutex);// некая работа над глобальными даннымиpthread_mutex_unlock(&mutex);А можно при помощи атомарных операций__sync_add_and_fetch( &global_int, 1 );Сегодня пришло в голову проверить при каком...

Читати далі...

Неожиданное поведение функции select

В Linuxman 2 select НАЗВАНИЕ select, pselect, FD_CLR, FD_ISSET, FD_SET, FD_ZERO - синхронное мультиплексирование ввода-вывода Во FreeBSD - есть еще такая пометка: "The default size of FD_SETSIZE is currently 1024. In order to accommodate programs which might potentially use a larger number of open files with select(), it is possible to increase this size by having the...

Читати далі...