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