Я строю высокопроизводительный симулятор тика в 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++
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как эффективно использовать диспетчер процессов Python с несколькими процессами?
Anonymous » » в форуме Python - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-