Вы невнимательно читали. 15 лет назад она была на Дельфах.
Собирается прямо сейчас на свежайших wxWidgets 3.1.4.
Напоминаю: в Вайне тормозит версия, в которой никакого gtk нет.
xmoonlight, если знаете способ научиться пользоваться профайлером так, чтобы библиотечный код под него собирался со всеми оптимизациями, а мой - профилировался, то просветите, как. Многозначительно ходить в белом и я умею.
Перебор на векторах при профилировании превращается в сплошные вызовы функций вместо того, чтобы, как в релиз-версии, заинлайнить это все в прямую работу с памятью. Это - не данные, это мусор.
Что делает профайлер с кодом, выполнение которого должно попадать в кэш процессора и сколько времени будет вертеться этот перебор в профайлере - не, не слышали?
Окей, топ-5 вызовов по версии callgrind:
/usr/include/c++/7/bits/stl_iterator.h
/usr/include/c++/7/bits/stl_iterator.h
/usr/include/c++/7/bits/stl_iterator.h
/usr/include/c++/7/bits/stl_iterator.h
/usr/include/c++/7/bits/stl_iterator.h
Я не очень надеюсь что-то в этом увидеть. Может быть, вы просветите?
Алексей Черемисин, в этой конкретной программе старался минимизировать различия, просто чтобы доделывая ее в очередной раз, не встать на свои же забытые грабли.
Джава - это хорошо, конечно, но для десктопной программы с богатым нестандартным гуем она не подходит.
Алексей Черемисин, именно этим и занимаюсь. И тоже думаю, что Линукс ни при чем, но городить еще и сборку под Хакинтош для проверки этого считаю лишней потерей времени.
Алексей Черемисин, я не так молод, чтобы об этом спорить ;) Желание переписать любую проблемную программу заново, с нуля, более правильно и круто, у меня уже как-то поутихло. Особенно учитывая, что в ней ежедневно работают люди, и неизбежные глюки принесут столь же неизбежные проблемы.
Да и я все-таки не такой херовый программист, чтобы, несколько раз переписывая программу под разные языки и библиотеки, наломать в ней настолько откровенных дров, как вы подозреваете.
Алексей Черемисин, человек указывает на то, что Wine использует только одно ядро. Я отвечаю, что Windows - тоже. Но разница десятикратная.
Я отключал в программе обновление окошка, и профайлер таки уткнулся в мои функции, которые гуй не трогают. И time на вариант без обновления пишет то же:
Алексей Черемисин, дубиной воспользуюсь при осознании ее необходимости.
Программе пятнадцать лет, она в первой версии писалась еще на Дельфях, потом несколько раз переписывалась, и строгость архитектуры обычно приносилась в жертву производительности. Может быть, зря.
Собственно, вопрос задавался не ради волшебных палочек, а чтобы расшевелить мне мозги и ткнуть в то, что я мог упустить. Вы уже весьма в этом помогли ;)
jcmvbkbc, у меня 4.15.119, отключить сложнее, как я понимаю.
Собственно, выше говорил о тесте в старой x32-убунте, там ядро без патчей, но все равно тормоза. Не то.