crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

2 страниц V   1 2 >  
Ответить в данную темуНачать новую тему
> Программа на разных ОС!, WinXP, Kubuntu 9.04, Linux Mint 7, Red Hat v.4 / AS, Solaris 5
posi4
  опции профиля:
сообщение 17.11.2009, 17:01
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 24.4.2009
Пользователь №: 707

Спасибо сказали: 0 раз(а)




Репутация:   0  


Написал я простенькое приложение с графическим интерфейсом и решил проверить его на разных
системах. Естественно возникли вопросы.

Приложение состоит из 15 кнопок, около 40 doublespinbox'ов, 10 radiobuttun'ов, 2 графика qwt_plot в каждом по четыре кривые,
графики обновляются в реальном времени, примерно 5 раз в секунду приходят 8 массивов по 1000 точек. Ну вообщем по ресурсам
пустяк.
Писал я это на конфигурации Celeron 2.80GHz, 512 Мб, WinXP SP2, Qt 4.5.2, QtCreator 1.2. Запустил. Работает нормально,
тормозов нет, но чувствуется что компьютеру сил еле еле хватает.
Запустился под Celeron 2.80GHz, 512 Мб, КУбунту 9.04. правда там уже стоит Qt 4.5.3 , но я думаю версия Qt роли здесь не играет, QtCreator 1.3. Откомпилировал.
Запустил. Ну, во-первых, графика съехала, всё вроде присутствует, но всё криво стало; во-вторых, появились тормоза,
примерно такие, нажимаешь на кнопку, а нажимается она с задержкой секунды 1.5 - 2, так же со всеми остальными виджетами;
при отрисовке графиков пропускаются кадры, поэтому всё выглядит как новогодняя мигающая гирлянда.
Скомпилировал всё статически, поставил запустил программу на другом компе, Core2 Duo 1.80 Гц, 1Гб.
Сначало на WinXP SP2, работает всё бастрее раза в 3-4, никаких внешних изменений, ну это и понятно.
Потом загрузился под установленным там Линуксом, Linux Mint 7 (ядро Ubuntu 9.04), работает тоже быстро,
но проблема с пропуском кадров осталась и добавилась еще одна. одна из функций qwt перестала перерисовывать область где выводятся графики если их
маштабировать.
Еще я попробывал запустить это всё на Red Hat v.4 / AS, тот мне сказал что нужна ему GLIBC 2.4 , хотя при сборке статической Qt я прописывал что бы
glib была туда включена. Да и вообще как я понимаю это стандартная библиотека для unix-подобных систем и уже должна быть на компе.
И напоследок вишенка на торт, попытался запустить под Solaris 5(!!!), ну тут всё просто "cannot execute" - вот и весь ответ.

Вопрос то вот в чём, есть ли какие универсальные способы написания программ или приемы(трюки), чтоб потом не мучаться с переносом приложений?
Что кто думает вообще на эту тему? И как мне все это заставить работать на Solaris 5?
Прошу строго не судить, я медленно постигаю эту науку! =)

Сообщение отредактировал posi4 - 17.11.2009, 17:03
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_Гость_*
сообщение 17.11.2009, 17:50
Сообщение #2





Гости








    


включить глибц это мощно... а ключик какой для этого использовался?
непонятно - под разные юникс ОС пробовалась одна сборка или каждый раз пересобиралось?
виджеты разъехались? там лайауты есть надеюсь?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 17:56
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Моё сравнение:
Виджетов с десяток, Qwt5.2 (сделан осчилограф) данные с трёх компортов (цифруются 3 фазы 50 Гц, частота дискретизации 200 Гц)
Работает на Селерон 950 Мгц Вин2к
Если другие приложения не запускать то осцилаграмма рисуется и пишется в файл без прерываний

Цитата(posi4 @ 17.11.2009, 20:01) *
Писал я это на конфигурации Celeron 2.80GHz, 512 Мб, WinXP SP2, Qt 4.5.2, QtCreator 1.2. Запустил. Работает нормально,
тормозов нет, но чувствуется что компьютеру сил еле еле хватает.
чё-то намудрено в программе
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
posi4
  опции профиля:
сообщение 17.11.2009, 18:08
Сообщение #4


Студент
*

Группа: Участник
Сообщений: 52
Регистрация: 24.4.2009
Пользователь №: 707

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Гость @ 17.11.2009, 17:50) *
включить глибц это мощно... а ключик какой для этого использовался?
непонятно - под разные юникс ОС пробовалась одна сборка или каждый раз пересобиралось?
виджеты разъехались? там лайауты есть надеюсь?


не знаю правильно ли я делал но писал так:
./confiure -static -release -qt-zlib -qt-gif -qt-libpng -qt-libmng -qt-libjpeg -no-gtkstyle -sm -glib -nomake demos -nomake examples -nomake tools -prefix /home/qtsdk-2009.04/qt_static


использовалась одна сборка!

С лайаутами все нормально, они есть. Но вот label'ы все почему то стали меньше по размерам, размеры кнопок изменились.
Да, и некоторые лайауты нехотят менять свои размеры! но это я думаю баг QtCreatra или QtDisaignera.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:19
Сообщение #5


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(posi4 @ 17.11.2009, 18:08) *
использовалась одна сборка!


Имхо, чтобы правильно всё проверить надо:
- на каждой ОС пересобирать Qt из исходников заново
- свою программу собирать на каждой ос заново
- все зависимые/сторонние библиотеки, которые используются в программе под каждой ОС собирать заново

- использовать один и тот же стиль, Plastique например
- убедиться, что используются одни и те же общие шрифты
- убедиться, что на всех ОС стоят нормальные драйвера для видео-карты и другие приложения не тормозят также как и твое
- проверить профайлером
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 18:24
Сообщение #6


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(SABROG @ 17.11.2009, 21:19) *
- на каждой ОС пересобирать Qt из исходников заново
а зачем?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:39
Сообщение #7


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 17.11.2009, 18:24) *
Цитата(SABROG @ 17.11.2009, 21:19) *
- на каждой ОС пересобирать Qt из исходников заново
а зачем?


Потому, что в исходниках вполне могут быть дефайны, которые учитывают особенности конкретной версии операционной системы, а также конкретной версии компилятора.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 18:44
Сообщение #8


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


а у него сборка статическая, все зависимости Qt должны быть включены в бинарь
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
SABROG
  опции профиля:
сообщение 17.11.2009, 18:56
Сообщение #9


Профессионал
*****

Группа: Участник
Сообщений: 1207
Регистрация: 8.12.2008
Из: Russia, Moscow
Пользователь №: 446

Спасибо сказали: 229 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 17.11.2009, 18:44) *
а у него сборка статическая, все зависимости Qt должны быть включены в бинарь


Да, но код в этих зависимостях был сгенерен для другой ОС, поэтому не факт, что программа будет работать стабильно или быстро.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 17.11.2009, 19:03
Сообщение #10


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


где-то у трлей было описание как это делать, чтоб на разных линухах работало. А вот где, не помню.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

2 страниц V   1 2 >
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.11.2022, 8:24