Программа C ++ работает намного медленнее в Windows, чем в Linux при выполнении файловых операций?

Я использую проект с открытым исходным кодом под названием ChatScript для разработки приложений обработки естественного языка.

Когда вы выполняете строить работая с ChatScript, он сканирует все файлы скриптов, которые составляют ваш чат-бот. В моем случае это сотни файлов. Этот процесс занимает почти 30 раз дольше на Windows 8.1 чем это происходит на Ubuntu 16.04. Следовательно, я делать Я использую Linux для большей части моей работы, но есть часть моей работы, над которой я должен работать Windows из-за определенных связанных инструментов, поэтому я хотел бы изменить базу кода так, чтобы Windows Компиляции ChatScript выполняются так же быстро, как и в Linux.

Может кто-нибудь придумать причину, по которой код будет работать намного медленнее Windows против Linux? Существуют ли какие-либо коды операций с файлами C ++ (чтение / запись / и т. Д.), О которых известно, что много медленнее на Windows по сравнению с Linux из-за различий в библиотеках времени выполнения C ++, работающих на каждой платформе?

0

Решение

«Код работает медленно» в вашем последнем абзаце, я предполагаю из контекста, что вы ссылаетесь на компилятор ???

В течение многих лет я часто и последовательно сталкивался с существенным существенным различием в производительности между Linux и Windows при дисковых операциях ввода-вывода. NTFS (файловая система Windows) и файловые системы linux по-разному справляются с ситуацией с множеством файлов, и linux всегда быстрее в тех обстоятельствах, в которых я находился.

Вы можете воспользоваться некоторыми из указателей в ответах на такие вопросы, как Как заставить Windows работать так же быстро, как Linux для компиляции C ++?, например, дефрагментация вашего Windows-диска и проверка настройки оптимизаций компилятора; некоторые из них могут замедлять работу компилятора (хотя агрессивная настройка оптимизации компилятора может замедлить работу компилятора, в конце вы создаете более быстрый исполняемый файл, но это может быть то, к чему вы переключаетесь после завершения большей части разработки).

Но выполнение всего этого для меня никогда не приводило к тому, чтобы компиляция Windows выполнялась быстрее, чем на Linux, используя эквивалентное дисковое оборудование, ни разу. Если ваш код находится на одном диске и поставляется для обоих компиляторов, любое улучшение, которое вы увидите в сборке Windows (например, потому что код помещен в SSD), вероятно, будет реплицировано и в улучшении сборки linux.

3

Другие решения

Других решений пока нет …