У меня проблемы с оптимизацией в моем коде.Я постараюсь объяснить сценарий, в котором я нахожусь. Если не ясно, пожалуйста, спросите.
Проблема прямая.Ранее у меня было 2 отдельных файла, которые я открывал в одном и том же процессе и вызывал mmap(2)
для обоих по отдельности.К первому сопоставлению чаще обращаются, чем ко второму. (Как для чтения, так и для записи). Я подумал, что нужно оптимизировать код больше, вместо того, чтобы использовать 2 отдельных файла, я мог бы просто поместить содержимое первого файла (размер которого действительно мал по сравнению со вторымfile) в начале второго файла и сдвиньте корень второго файла вперед на требуемое смещение.Это позволит избежать использования 2 файлов и, следовательно, избежать вызовов на open(2)
и mmap(2)
.Поскольку этот код настройки (который вызывает open(2)
и mmap(2)
) будет вызываться как минимум 100 000+ раз, удаление этих двух вызовов должно было иметь значение.Но я не знаю, почему доступ к части, которую я переместил в начало 2-го файла, стал намного медленнее.В Google я где-то читал, что это может быть случай некоторого кэширования страницы, но я не уверен, что это так, потому что операция записи стала почти в 10-20 раз медленнее.Пожалуйста, предложите мне, как я могу улучшить это?