Алексей Черемисин, именно этим и занимаюсь. И тоже думаю, что Линукс ни при чем, но городить еще и сборку под Хакинтош для проверки этого считаю лишней потерей времени.
Алексей Черемисин, я не так молод, чтобы об этом спорить ;) Желание переписать любую проблемную программу заново, с нуля, более правильно и круто, у меня уже как-то поутихло. Особенно учитывая, что в ней ежедневно работают люди, и неизбежные глюки принесут столь же неизбежные проблемы.
Да и я все-таки не такой херовый программист, чтобы, несколько раз переписывая программу под разные языки и библиотеки, наломать в ней настолько откровенных дров, как вы подозреваете.
Алексей Черемисин, человек указывает на то, что Wine использует только одно ядро. Я отвечаю, что Windows - тоже. Но разница десятикратная.
Я отключал в программе обновление окошка, и профайлер таки уткнулся в мои функции, которые гуй не трогают. И time на вариант без обновления пишет то же:
Алексей Черемисин, дубиной воспользуюсь при осознании ее необходимости.
Программе пятнадцать лет, она в первой версии писалась еще на Дельфях, потом несколько раз переписывалась, и строгость архитектуры обычно приносилась в жертву производительности. Может быть, зря.
Собственно, вопрос задавался не ради волшебных палочек, а чтобы расшевелить мне мозги и ткнуть в то, что я мог упустить. Вы уже весьма в этом помогли ;)
jcmvbkbc, у меня 4.15.119, отключить сложнее, как я понимаю.
Собственно, выше говорил о тесте в старой x32-убунте, там ядро без патчей, но все равно тормоза. Не то.
Алексей Черемисин, как раз это и проблематично. Программа предназначена для работы оператора, который наблюдает за процессом и корректирует. Перебор на больших данных передает привет возрасту вселенной, как известно. Гуй в программе - 90% всего кода, и выкинуть его ой как непросто. По факту, проще выдернуть из программы именно перебор, собрать, подсунуть ему тестовые данные и посмотреть, что получится. И если вдруг получится, что этот кусок работает с одинаковой скоростью, это отнюдь не будет решением моей проблемы ;)
Алексей Черемисин, программа в процессе отображает ход выполнения, гуй играет только в этом. Но отключение обновления в процессе почти не ускорило работу.
Другое дело, что библиотека может все равно отображать окно программы, и тормозить этим... пороюсь еще.
Алексей Черемисин, да профилирую, там не так все тривиально, чтобы тут обсуждать.
Важный, видимо, момент: в программе используется библиотека wxWidgets, и у нее сильно различаются потроха классов под разными системами. Профилировщик большую часть времени показывает на ее функции, в частности - работу со строками. С этим и копаюсь.
Однако тормозов под Wine это ни фига не объясняет, как мы понимаем...
Алексей Черемисин, такая разница может быть и из-за непопадания в кэш. Данных слишком мало для свопа.
Попробовал собрать программу на Ubuntu 14.04 x32 в виртуалке, запустил - такие же тормоза, увы. Хотя памяти кушает почти вдвое меньше.
Тестирование Windows, кстати, тоже в виртуалке - VB. Но там укладывается в минуту...
Визуально примерно так.
Есть первое поле - в жирной рамке, короне или еще как-то выделенное для главного. По умолчанию оно пустое (флаг с вопросом, например), при щелчке по языку он становится главным и перемещается из списка в первое поле. При щелчке по этому полю оно обнуляется, язык возвращается в список. Если главный язык уже выбран - при щелчке по прочим на них ставится-снимается галочка выбора.
Забыт важный, в том числе и для администрирования, момент: слабая связность.
Не монолиты, где галочка в одном месте вызывает взрыв в другом, а четко разделенные зоны ответственности. Не велосипедные связи, требующие понимания писем хищника чужому, а открытые и повсеместно используемые протоколы обмена данными.
В программировании необходимость слабой связности в сложных системах считается общим местом с прошлого века. В Виндоус-администрировании все еще есть тяготение к набитым костылями черным ящикам.
Илья Т., гремлины несложные - просто по крону ночью запускать вакуумирование базы.
Но ваша проблема не в этом, а в передаче файла (или его кусков) по сети. Тупик.
Стоит поискать решение выше: что это за софт, что за база? Может, есть варианты выпрямить всю эту кривизну и перестать маяться?