2017-01-31 16 views
1

У меня есть код Fortran со многими файлами .f, которые генерируют исполняемый файл. Я запускал симуляцию и успешно реализовал программное обеспечение в Linux (в Virtual Box). Когда я делал то же самое в среде Cygwin в Windows, он работает успешно, но на несколько секунд медленнее. Код fortran, над которым я работаю, является итеративным кодом. каждая итерация выполнялась медленнее на порядок миллисекунд. когда я запускал весь код в 1000 раз, он задерживался на секунды. Я использовал пакет времени, чтобы узнать общее исполнение в виртуальном box.It дал реальные 0m0.061s пользователя 0m0.036s SYS 0m0.020sВыполняется медленнее в Cygwin под Windows, чем в Linux в VirtualBox

В окнах с командой измерьте PowerShell: общее время выполнения = 0,095 секунд

Каждый раз, когда Linux выигрывает гонку, хотя Virtual Box занимает всего половину ядра процессора и половину бара. Это поведение нормальное или что-то не так?

+0

Вы должны действительно показать хотя бы результаты измерений. Несколько секунд из нескольких минут или нескольких часов? Что это за код? –

+0

@ Daniel, пожалуйста, не делайте редактирования, который форматирует каждое слово, которое также является тегом как код. Используйте код для кода. Такие слова, как Linux и Windows, заслуживают того, чтобы они были написаны нормально и с первой буквой. –

+2

Также важно показать, как вы компилируете код. Особенно, какие флаги оптимизации используются. –

ответ

1

Это нормально. Реализация вилки на cygwin медленна из-за количества обходных путей для обхода ограничения Windows.

Ваша повторяющаяся компиляция, вероятно, растрачивает много времени во время вилок.

+0

Почему простая итеративная программа делает любую вилку? –

+0

Запустите код 1000 раз, так что 1000 вилок, и может быть 1000 проверки антивируса. Проверьте с помощью strace, где код принимает системное время, он может предоставить вам дополнительные данные. – matzeri

+0

Значит, он запускает исполняемый файл 1000 раз отдельно, вместо того, чтобы делать 1000 вычислений в одном исполняемом файле? Это действительно может сделать почти что угодно ... –