— Не ешьте на ночь сырых помидоров, — советовал Остап, — чтоб не причинить вреда желудку.
— Всего хорошего, — говорил Корейко, радостно откланиваясь и шаркая ножкой.
— До свидания, до свидания, — ответствовал Остап, — интересный вы человек! Все у вас в порядке. Удивительно, с таким счастьем — и на свободе.
xmoonlight, а что вы обычно отвечаете людям, которые настойчиво предлагают вам просто выкинуть работу за 15 лет и вернуться к тому говну мамонта, с которого она начиналась? Чур, без мата.
Вы невнимательно читали. 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 на вариант без обновления пишет то же: