Название: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 08:57 Проект с Qt4.2 собрал на MSVC WinXP/Core 2 Duo, потом перенес на gcc Unix-X11/Nehalem. Вижу по бегущей шкале, что файлы версия на Unix читаются медленнее. Возможно замедляются вообще все действия кода, но критично это именно на чтении файла. Если Qt-эшный интерфейс отключить и собрать на двух машинах, то чтение на Nehalem проходит в несколько раз быстрее.
Есть ли у кого-нибудь версии? Возможно можно остановить обработку событий в Qt, как это сделать? Может быть я не учел каких-то особенностей перенесения на Unix? Код на Linux нужен для работы с большими объемами. Так что готов проверять, компилировать кусками, переписывать чтение. Лишь бы только были идеи, как это делать. Скажем fscanf я заменил на построчное считывание через fgets и sscanf, опции компиляции менял -- не помогает. Заранее благодарен вашим ответам. Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: GreatSnake от Апрель 29, 2011, 09:14 Цитировать Вижу по бегущей шкале, что файлы версия на Unix читаются медленнее. Что такое "бегущая шкала"? Прогресс бар?Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: Fat-Zer от Апрель 29, 2011, 09:18 а может это какие-то тормоза дисковой подсистемы вообще?
ЗЫ: чтение же в отдельном потоке идёт? Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 09:22 Да, прогресс бар.
Немного повторюсь - Чтобы проверить скорость чтения я запускал чтение файла на обоих системах. На Unix быстрее. Когда запускаю QApplication с чтением внутри конструктора, чтение на Unix происходит медленее. Я в коде чтение в отдельную нить не выношу, никогда не пробовал это делать. Если чтение файла выносится в отдельную нить, то могу ли я повысить приоритет этой нити, или понизить приоритет других нитей??? Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: GreatSnake от Апрель 29, 2011, 09:26 Цитировать Когда запускаю QApplication с чтением внутри конструктора, чтение на Unix происходит медленее. По каким критериям вы это оцениваете?Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: Fat-Zer от Апрель 29, 2011, 09:34 Да, прогресс бар. как часто обновляете прогрессбар? скорей всего тормозит именно его постоянное обновление/переотрисовка.Немного повторюсь - Чтобы проверить скорость чтения я запускал чтение файла на обоих системах. На Unix быстрее. Когда запускаю QApplication с чтением внутри конструктора, чтение на Unix происходит медленее. Я в коде чтение в отдельную нить не выношу, никогда не пробовал это делать. Если чтение файла выносится в отдельную нить, то могу ли я повысить приоритет этой нити, или понизить приоритет других нитей??? ЗЫ: внутри какого конструктора? выложите немного кода... Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 09:45 Под WinXP я вызываю прогресс бар столько же раз. И вижу что шкала бежит быстрее, чем на Unix.
И есть еще один эффект. Программа в памяти не увеличивается, но чем больше она прочитала, тем медленее идет чтение.... Код: pr_bar=pr_bar_; label_operation=label_operation_; Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 09:51 Цитировать Когда запускаю QApplication с чтением внутри конструктора, чтение на Unix происходит медленее. По каким критериям вы это оцениваете?Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: Fat-Zer от Апрель 29, 2011, 09:59 Под WinXP я вызываю прогресс бар столько же раз. И вижу что шкала бежит быстрее, чем на Unix. Ну а если закоментировать весь блок(или строчку с SetProgress):И есть еще один эффект. Программа в памяти не увеличивается, но чем больше она прочитала, тем медленее идет чтение.... Код: if(i%500==0) Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 10:04 Кстати, нет. Порядка минуты. Т.е. интерфейс получается сильно тормозит чтение на обеих системах.
Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: GreatSnake от Апрель 29, 2011, 10:52 Цитировать Я запускаю Unix-версию удаленно и отображаю через Xming, а WinXP-версия работает на моей машине. Ну дык, конечно, gui в этом случае может сильно тормозить.Мой вам совет - первичная оценка скорости должна делаться локально. Иначе можете устроить войну с ветряными мельницами. Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 11:07 Не совсем понял.
Я оценивал скорость файла и скорость файла при запуске QtApplication. Какую еще оценку мне сделать? Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: GreatSnake от Апрель 29, 2011, 11:12 Оценивать нужно локально, а не удалённо. И только после такой оценки делать выводы.
Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: Fat-Zer от Апрель 29, 2011, 11:30 starab, ну дык при указанных закоментированных строках скорость нормальная?
Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: starab от Апрель 29, 2011, 11:58 Нет, порядка минуты на Win и 4 минут на Unix.
Точнее отвечу, комментирование строчек ускоряет код на 10% не больше, под любой системой. Название: Re: Медленное чтение файла (gcc, Unix) Отправлено: Fat-Zer от Апрель 29, 2011, 12:10 Нет, порядка минуты на Win и 4 минут на Unix. странно :-\ Точнее отвечу, комментирование строчек ускоряет код на 10% не больше, под любой системой. |