Adamos, Все относительно. В яве очень богатый гуй, особенно на библиотеке javaFx. Да, не всегда хорошо ради простой программы требовать ставить JVM, но если что-то побольше, или "тяп-ляп-продакшион", то очень даже ничего - https://openjfx.io/
Adamos, Я уже где-то выше писал, что все системы разные, архитектурно, и если программа должна работать во всех системах, то придется проверять ее во всех системах, увы... Иногда, то, что в одной системе работает быстро, в другой может тормозить так, что повесишься. Часто приходится делать ifdef WIN/LINUX/VXWORKS - далее везде, где-то очереди залипают, где-то семафоры, где-то графика, где-то сеть.
Тем более, если приложение кроссплатформенное... Поэтому ушел я на яву, и не жужжу :-D
Adamos, а не вынуждаю Вас переписывать, нужно найти место, где тормозит, понять почему это происходит, и починить. И проблема наверняка не лежит в плоскости линукса!
Adamos, Не верю! Ну вот не верю и все тут. Пишу программы, сервера, гуи и прочую херню уже лет 30. Пишу под винду, линукс, кросспланформенно и не очень. Ну, блин, чтобы вместо 60 секунд было 600 - нужно очень сильно постараться!!!
Adamos, Давайте на спор. Я напишу программу, которая в линуксе будет работать в 100 раз быстрее, чем в виндах. Уверяю, у меня это получится! Что это даст? А только то, что я ее напишу херово! Она будет херово работать в линуксе, и в 100 раз херовее в виндах!
Я Вам пытаюсь донести мысль, что проблема не в винде или линуксе - проблема в херовости программы и ее архитектуре!
Adamos, Стоп-стоп-стоп... Вы не путайте ядра процессора и потоки в программе. Ядро может быть и одно, а вот потоков в программе - сотни. И таки да, они тоже переключаются между собой, что в винде, что в линуксах. Не так, как процессы, но переключаются...
Adamos, Волшебной палочки у меня нет, тем более не зная архитектуры программы. Если, как вы утверждали изначально, тормозит именно перебор, то выделив его в отдельный блок, это наверняка сократит волшебные минуты. Для отображения этого процесса в GUI, нужно будет что-то подумать, например не кидать каждое значение, а раз в пол секунды опрашивать...
Да и похоже, при написании пренебрегли паттерном MVC, не отделив данные от считалок и отображения - здесь уж каждый сам себе, злобный Буратино. Тут не палочка нужна, а волшебная дубина.
Adamos, выпилите вообще гуй на время, замерьте... Ну и если нужно очень быстро отображать, то лучше это делать через общую память, но это отдельный разговор...
Adamos, Немного объясню, вывод графики и GUI в винде и линуксах организован совсем по разному. Первый использует ядро, и не делает при этом резких движений (переключение контекста и прочие хлопоты), а вот второй - использует отдельный пользовательский процесс, XWindow или новомодный Waylang.
В результате, чтобы что-то отобразить, программа шлепает вызов в ядро, ядро отправляет данные другому процессу, переключая на него контекст. Тут и кеши инвалидируются, и регистры и вся эта хрень....
Adamos, Стоп-стоп-стоп.... Таки не чистая числодробилка! Давайте-ка отрежем все лишнее, а с GUI уже отдельно заниматься будем.
Потому как в вопросе вы заявили
Профилирование перебора, очевидно, покажет, что все время жрет перебор, это я и так понимаю...
А оно вона чо... Все врут, как говорил Dr. House...
Насколько я понимаю, программа не запускает потоков, не работает с файлами, а тупо считает. Другими словами просто шуршит по структурам и тупо нагружает CPU, не использует активно системные вызовы ввода/вывода (печать, чтение-запись в файлы, потоки, блокировки, графику и т.д.)...
Если все запускается на одном и том же компьютере, то подразумеваю, проблема может быть в ключах компиляции.
С другой стороны, если и в Wine показывает такие же результаты, то проблема может быть и в ядре и его параметрах компиляции...
И вопрос, так профилировали или нет?
И какая версия ядра, и что за линукс, желательно тоже с версией...
Да, такая сильная разница может быть, если например линукс уходит в swap. Обычно разница в производительности - пара процентов в ту или иную сторону.
Vydje, может быть и с материнкой, и с процессором.
Вытащите все диски, попробуйте загрузиться только с флешки.
И еще раз спрашиваю, это последний - КАКОЙ ТИП ЗАГРУЗКИ У ВАС СТОИТ в биосе?
Vydje, И последние вопросы:
Какой тип загрузки EFI или Legal?
Стоит ли Secure Boot?
Попробуйте загрузиться с флешки! У уже через нее проверить диски или восстановить загрузчик.
rav_pr, DMZ вам не нужен! Он нужен совсем для другого!
Если есть микротик, можно его использовать в качестве коммутатора, но это как из пушки по воробьям - подойдет любой неуправляемый коммутатор на нужное количество портов.
Точку доступа Wifi - да, поставить можно. У меня так и было, ибо wifi на старом роутере от провайдера был никакой. Я поставил дополнительно Airport Express в режиме точки доступа.
Сейчас провайдер (MGTS )по моей просьбе поставил новый современный роутер. Wifi на нем шикарный, Airport я убрал в ящичек. Вопрос решается одним звонком к провайдеру и вопросом о замене оборудования.
Если микротика нет, то специально его для этого дела покупать не следует, лучше купить коммутатор и точку доступа.
Микротик нужен, если у вас нет роутера никакого, а есть голый порт. DMZ может понадобиться если есть выделенный реальный IP-адрес, но и даже в этом случае DMZ лишнее!
Ставить роутер за роутер - масло масляное, тем более дома.
Другой случай, если у вас дома есть несколько подсетей, одна для видеонаблюдения, другая для "умного дома", третья для телефонии, есть пара серверов, и вы хотите ограничить или изолировать эти подсети друг от друга в целях безопасности... то тогда да, есть смысл поставить роутер!
Типа
Можно на питоне или на любом языке программирования.
Делов - на 15 минут!