Я строю высокопроизводительный симулятор тика в C ++, который генерирует рыночные клещи (до 65 536 в секунду). Теперь я хочу отправить эти тики в другой локальный процесс на той же машине Linux в режиме реального времени. Для этого я попытался использовать общую память POSIX (SHM_OPEN, MMAP и т. Д.), Но я сталкиваюсь с проблемами производительности - потребитель не может прочитать значения клещей достаточно быстро, а иногда, кажется, упускает их вообще.int shm_fd = shm_open(SHM_NAME, O_CREAT | O_RDWR, 0666);
ftruncate(shm_fd, SHM_SIZE);
shared_data = (SharedData*) mmap(0, SHM_SIZE, PROT_WRITE, MAP_SHARED, shm_fd, 0);
shared_data->tick_count = 0;
shared_data->keep_running = true;
chrono::high_resolution_clock::time_point start_time;
while (shared_data->keep_running && shared_data->tick_count < TOTAL_JIFFIES) {
shared_data->tick_count++;
}
< /code>
Tick Reader (процесс B): < /p>
const char* shm_name = "/tick_shm";
int fd = shm_open(shm_name, O_RDONLY, 0666);
if (fd < 0) {
cerr
Подробнее здесь: https://stackoverflow.com/questions/796 ... al-c-proce
Как я могу эффективно поделиться высокочастотными данными клещей между двумя локальными процессами C ++ с использованием ⇐ C++
Программы на C++. Форум разработчиков
1750394501
Anonymous
Я строю высокопроизводительный симулятор тика в C ++, который генерирует рыночные клещи (до 65 536 в секунду). Теперь я хочу отправить эти тики в другой локальный процесс на той же машине Linux в режиме реального времени. Для этого я попытался использовать общую память POSIX (SHM_OPEN, MMAP и т. Д.), Но я сталкиваюсь с проблемами производительности - потребитель не может прочитать значения клещей достаточно быстро, а иногда, кажется, упускает их вообще.int shm_fd = shm_open(SHM_NAME, O_CREAT | O_RDWR, 0666);
ftruncate(shm_fd, SHM_SIZE);
shared_data = (SharedData*) mmap(0, SHM_SIZE, PROT_WRITE, MAP_SHARED, shm_fd, 0);
shared_data->tick_count = 0;
shared_data->keep_running = true;
chrono::high_resolution_clock::time_point start_time;
while (shared_data->keep_running && shared_data->tick_count < TOTAL_JIFFIES) {
shared_data->tick_count++;
}
< /code>
Tick Reader (процесс B): < /p>
const char* shm_name = "/tick_shm";
int fd = shm_open(shm_name, O_RDONLY, 0666);
if (fd < 0) {
cerr
Подробнее здесь: [url]https://stackoverflow.com/questions/79672866/how-can-i-efficiently-share-high-frequency-tick-data-between-two-local-c-proce[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия