Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > C++

Ответ
 
Опции темы
Старый 13.09.2013, 23:04   #1
Hamaus
ПроЭктировщик
 
Аватар для Hamaus
 
Регистрация: 12.09.2005
Сообщений: 138
Написано 20 полезных сообщений
(для 31 пользователей)
Плохо boost::interprocess

Всем привет! Возник вопрос по Shared memory буста.
Где именно выделяется память под нее?
В доках пишут следующее:
The operating system maps a memory segment in the address space of several processes
Дело в том, что я случайно забыл прописать remove в конце работы программы. А на следующий день при отладке память открылась совершенно свободно. В ней хранились последние данные с прошлого дня.
На сколько я помню, при нативной работе с общей памятью в винде она очищалась при выключении ПК. Почему в бусте не так?
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (13.09.2013)
Старый 14.09.2013, 00:46   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: boost::interprocess

Память сохранилась между выключениями компа?

Ну тогда это энергонезависимая память, или файл
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
Hamaus (14.09.2013)
Старый 14.09.2013, 02:26   #3
jimon
 
Сообщений: n/a
Ответ: boost::interprocess

Windows operating system also offers shared memory, but the lifetime of this shared memory is very different to kernel or filesystem lifetime. The shared memory is created backed by the pagefile and it's automatically destroyed when the last process attached to the shared memory is destroyed.

Because of this reason, there is no effective way to simulate kernel or filesystem persistence using native windows shared memory and Boost.Interprocess emulates shared memory using memory mapped files. This assures portability between POSIX and Windows operating systems.
RTFM
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо за это полезное сообщение:
Hamaus (14.09.2013), HolyDel (14.09.2013), SBJoker (14.09.2013)
Старый 14.09.2013, 15:52   #4
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: boost::interprocess

Охрененно =\
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 14.09.2013, 22:49   #5
jimon
 
Сообщений: n/a
Ответ: boost::interprocess

Винда всегда отличалась тем что клала большой болт на POSIX. С приходом C11\C++11 пал один из самых проблемных - бастион threads, теперь они наконец-то в стандарте : http://en.cppreference.com/w/c/thread и http://en.cppreference.com/w/c/atomic. Плюс в C11\C++11 наконец-то разобрались с UTF8\16\32 (http://en.cppreference.com/w/c/string/multibyte) и СТОЛМАН ЗАСУНЬ СВОЙ ICONV ОБРАТНО !

Так что когда на винде появятся нормальные C++ компиляторы - тогда и заживем, ориентировочно это конец 2014 (тогда майкрософт обещает полную поддержку C++11\14, и возможно clang наконец-то допилят для винды), а пока живем с огрызком gcc 4.8 в виде mingw 4.8, так там даже регеспы не работают и всяким либам приходится эмулировать POSIX вот такими костылями.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (14.09.2013)
Старый 14.09.2013, 23:11   #6
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: boost::interprocess

Чот я в ксакепе прочитал пример работы с потоками и прям старпёром себя почувствовал. То ли дело было виндовые библиотеки юзать - только хардкор. =( Чувствую, как остаюсь на обочине технологий
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Старый 15.09.2013, 01:40   #7
jimon
 
Сообщений: n/a
Ответ: boost::interprocess

impersonalis
так просто практикуй писать софт используя bleeding edge technology (для soft-realtime это C++14, Rust, D, вариации лиспа и FRP, и тд, всякие https://github.com/postwait/fq, https://github.com/zdevito/terra и тд, для веба больше moka подскажет)

можно просто взять за правило каждый день по часу тратить время на bleeding edge, на cutting edge tech (те которые острые, но уже не режут ибо проверены людьми) не трать особо времени, ибо там спецы появились и скоро нафигачат и книжки и презентации и тд

так же крутись в сфере людей которая этим занимается, например на closedcircles (http://blog.gamedeff.com/?p=386) обсуждаются довольно интересные программерские и геймдев вопросы

ps. Rust например это такой язык что вот ты пишешь код, и опа ты уже отлаживает компилятор и потом делаешь пулл реквест фикса.
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
impersonalis (15.09.2013)
Старый 20.09.2013, 19:34   #8
Randomize
[object Object]
 
Аватар для Randomize
 
Регистрация: 01.08.2008
Адрес: В России
Сообщений: 4,355
Написано 2,471 полезных сообщений
(для 6,853 пользователей)
Ответ: boost::interprocess

Сообщение от jimon Посмотреть сообщение
ps. Rust например это такой язык что вот ты пишешь код, и опа ты уже отлаживает компилятор и потом делаешь пулл реквест фикса.
Чего?
__________________
Retry, Abort, Ignore? █
Intel Core i7-9700 4.70 Ghz; 64Gb; Nvidia RTX 3070
AMD Ryzen 7 3800X 4.3Ghz; 64Gb; Nvidia 1070Ti
AMD Ryzen 7 1700X 3.4Ghz; 8Gb; AMD RX 570
AMD Athlon II 2.6Ghz; 8Gb; Nvidia GTX 750 Ti
(Offline)
 
Ответить с цитированием
Старый 20.09.2013, 19:45   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: boost::interprocess

Сообщение от Randomize Посмотреть сообщение
Чего?
Пишешь код - баги. Ловишь их понимаешь что они в компиляторе.
Далее фиксишь компилятор.
Идёшь на git (или чётам), и делаешь pull request фикса который замутил.
Все довольны - твои проблемы решены, другие тоже не встретят.
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:00.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com