powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / неудача.что делать?
84 сообщений из 84, показаны все 4 страниц
неудача.что делать?
    #37854789
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Начнем с того нам была поставлена задача сделать приклад аля стандалон (нормальной постановки не было, надо, хотите в лоб хотите как), для RIA взяли vaadin , для БД хибер. Во время разработки постоянно, что-то куда-то подтыкалось и получился просто…. В БД полная помойка, но переделать ее нельзя. Получилось так, что хибер таскает кучу шлака(хотя если переносе на мб не суть), приклад тормозит просто пипец. Параллельно реши переходить на запросы и обмениваться с БД только необходимым. хибер в этом плане не помеха, но и не нужен, поменяли на mybatis получили прирост, но все равно бывает медленно. Стало быть затык в СПД и рабочих станциях. Приклад хоть и корпоративный, но филиалы\офисы разбросаны разбросаны.
Что посоветуете для уменьшения трафика(ява скрипта ведь ползет не кисло) и уменьшения нагрузки на клиенте(в тот же скрипт крутиться)? нужен AJAX и богатый гуи (максимально похожий на сложившийся). Хреначить это ручками не вариант т.к. долго очень и хлопотно(денег нам не дадут, а вот если не исправим побьют ) стоит ли посмотреть на primefaces или теже яйца? Или GWT? GWT + к.н. расширения? Какие фреймворки посоветуете для постоения RIA с не высокими требованиями к СПД, клиенту, и порогу вхождения для разработки

Спасибо
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854797
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Найти нормального архитектора. Хибер не таскает никакого шлака. Нужно просто спланировать как вы его хотите использовать. Разобраться с lazy.
Голый GWT+JSON должен быть отличным вариантом для минимизации трафика, там минимум серверных вызовов и они хорошо контролируются. Можно ещё gzip навернуть на HTTP - стандартная фича во всех серверах.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854825
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,
у вас нет выхода.
Таблицы в ГУИ есть?
в голом gwt не RIA.
Делайте тесты и разбирайтесь что тормозит.
Веб всё равно НЕ будет как стандалон.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854838
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,
вот демку ваадим откройте - тормозит?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854862
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Боюсь, что побъют, но ... "как стандалон" может быть флекс-приложение. Скорость написания - во многие-многие разы быстрее, чем html-base, трафик обмена - примерно в 3 раза меньше (по тестам Варда - одного из топ-разрабов - на его сайте тесты), чем json, при почти полной сериализации. Позволяет работать с БД без ДАО-слоя на сервере. Библиотека контролов - огромная, модификация и создание новых - ерундовое. Есть даже кастимизирующие библиотеки, которые придают приложению вид "стандалона". Объем весьма крупного приложения (swf) сопоставим объему загрузки нескольких веб-страниц (сделанный АРМ на флексе в одном файле "весит" 980-1040 КБ, титулка веб-сайта того же заказчика - 880 КБ).
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854879
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckБоюсь, что побъют, но ... "как стандалон" может быть флекс-приложение.
Flex вроде бы прикрыть Adobe?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854910
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно? Я еще до 4.4 не добрался ... :(
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854941
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvFlex вроде бы прикрыть Adobe?
Платформа прикрыть своего владельца? Школа красноречия мастера Йоды?
HTML5, конечно, наступает. Но такими темпами он максимум займет нишу анимировных банеров.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854943
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не, не шути так ... уже, оказывается, 4.6 вышел ... и планов у них много. По крайней мере, офиально портируют на iOS, что не может не радовать (чем черт не шутит, может, война закончится?). И поддержку сделали 4.5 под ПэХаПэ, что в данном случае, уже не может радовать :). Не-не, технология пропасть не может, думаю, ее будут плавно трансформировать в русло HTML5 - AIR оставят как десктоп, а флеш будет компилиться под новые канвасы (или типа того). Это более правдоподобно.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854954
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz Хибер не таскает никакого шлака. Нужно просто спланировать как вы его хотите использовать. Разобраться с lazy.

на скока я его понимаю, отображаем объекты на таблицы. а ну нас например случай: 2 таблицы по 40 столбцов а надо 16.нормализация -> 0. lazy по столбцам не видел. возможно надо переделать отображение, но гемороя больше, чем пользы.
Таблицы в ГУИ есть?

оснавная часть. получаем инфу в табличном виде, правим.иногда просто отчеты перегоняемые в excell/печать.
вот демку ваадим откройте - тормозит?

у нас на отладке после оптимизации запросов летает, да и с хибиром неплохо шуршит
Подрубаемся к производственной БД у черта на куличках, сервер приложений у нас,там где хибер идет просадка.
там где без хибера у нас ништяк у клиентуры с попеременным успехом, с хибером у нас не очень у клиентуры жопа.
отдаем приклад на производственный сервак(там где БД, но на иной аппарат) у нас плохо, у клиента колесико ваадина крутиться до опупения
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854961
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanна скока я его понимаю, отображаем объекты на таблицы. а ну нас например случай: 2 таблицы по 40 столбцов а надо 16.нормализация -> 0. lazy по столбцам не видел. возможно надо переделать отображение, но гемороя больше, чем пользы.

Ширина таблицы на скорость выполнения запроса не влияет.
Для минимизации данных в работе с удаленным клиентом существует типовой подход, который называется DTO.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37854990
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczsilvanна скока я его понимаю, отображаем объекты на таблицы. а ну нас например случай: 2 таблицы по 40 столбцов а надо 16.нормализация -> 0. lazy по столбцам не видел. возможно надо переделать отображение, но гемороя больше, чем пользы.

Ширина таблицы на скорость выполнения запроса не влияет.
Для минимизации данных в работе с удаленным клиентом существует типовой подход, который называется DTO.
я и не говорил, что запросы тупят.в ДТО мы и перегоняем. вот только из базы на сервак летит вся таблица, что по объему больше в 8 раз.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855009
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IDVsbruckБоюсь, что побъют, но ... "как стандалон" может быть флекс-приложение. Скорость написания - во многие-многие разы быстрее, чем html-base, трафик обмена - примерно в 3 раза меньше (по тестам Варда - одного из топ-разрабов - на его сайте тесты), чем json, при почти полной сериализации. Позволяет работать с БД без ДАО-слоя на сервере. Библиотека контролов - огромная, модификация и создание новых - ерундовое. Есть даже кастимизирующие библиотеки, которые придают приложению вид "стандалона". Объем весьма крупного приложения (swf) сопоставим объему загрузки нескольких веб-страниц (сделанный АРМ на флексе в одном файле "весит" 980-1040 КБ, титулка веб-сайта того же заказчика - 880 КБ).

боюсь я флекса, всякое про него говорят, проверять опытным путем что-то не хотца. да и клиенту флеш ставить надо, это целая проблема(бюрократия\вопрос кто это делать буит).смеяться не надо.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855020
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanвот только из базы на сервак летит вся таблица, что по объему больше в 8 раз.
надо бы поконкретней в граммах.
- скорость канала, сам запрос и т.д.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855026
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,

флекс на 1 мбт в сек загибается.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855044
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanвот только из базы на сервак летит вся таблица,
таблица сущность - Договор. В БД миллион договоров.
- почему она у вас ВСЯ куда-то летит?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855068
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, различно от офиса к офису, из текущего в среднем около 650 кбайт\с.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855076
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123silvanвот только из базы на сервак летит вся таблица,
таблица сущность - Договор. В БД миллион договоров.
- почему она у вас ВСЯ куда-то летит?
по ТЗ: выдать клиенту все договора
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855079
IDVsbruck
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не обращай внимания, это он так пошутил ...
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855083
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanя и не говорил, что запросы тупят.в ДТО мы и перегоняем. вот только из базы на сервак летит вся таблица, что по объему больше в 8 раз.
"вся таблица" или "вся запись"? Это важно. База и сервак разве разнесены физически? И между ними в добавок узкий канал?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855088
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123флекс на 1 мбт в сек загибается.
Нахера клиенту такой поток данных? Это видео можно смотреть в FullHD с такой нагрузкой на клиента.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855093
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanPetro123, различно от офиса к офису, из текущего в среднем около 650 кбайт\с.
Это ширина канала, или нагрузка, которую вы создаёте? gzip пробовали на сервере настроить? Будет CPU немного больше жрать. Но если у вас узкое место в трафике, то имеет смысл.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855132
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz"вся таблица" или "вся запись"? Это важно.

Клиенту DTO c опреденными данными по всей таблице, а на сервак все записи вся таблица. ключевых полей в таблице более половины
[quot]
База и сервак разве разнесены физически?
[.quot]

И между ними в добавок узкий канал?
не берусь судить


Нахера клиенту такой поток данных? Это видео можно смотреть в FullHD с такой нагрузкой на клиента.

как жадный обладатель домашних 2мбт говорю: можно но вам не понравится)))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855150
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczsilvanPetro123, различно от офиса к офису, из текущего в среднем около 650 кбайт\с.
Это ширина канала, или нагрузка, которую вы создаёте? gzip пробовали на сервере настроить? Будет CPU немного больше жрать. Но если у вас узкое место в трафике, то имеет смысл.
это данные с "трафикомера".
gzip не пробывал. имеется в виду gzip клиент-сервер? сервер-бд можно ли как?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855156
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanБаза и сервак разве разнесены физически?


И между ними в добавок узкий канал?
не берусь судить

Как вы тогда определили что это узкое место?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855158
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczPetro123флекс на 1 мбт в сек загибается.
Нахера клиенту такой поток данных? Это видео можно смотреть в FullHD с такой нагрузкой на клиента.
это очень мало! Это самые низкие расценки у провайдеров.
Tube уже не идёт в ослике.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855163
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanдомашних 2мбт
у меня тоже 2. Был один. )))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855173
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanPetro123пропущено...

таблица сущность - Договор. В БД миллион договоров.
- почему она у вас ВСЯ куда-то летит?
по ТЗ: выдать клиенту все договора
всё таки. Попробуй как программист, а не как менеджер ВСЁ ВЕЗДЕ ПОМЕРИТЬ))

А выдать все договора - куда? На принтер? На экран? По пагинации? В туалетную бумагу?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855175
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123это очень мало! Это самые низкие расценки у провайдеров.
Tube уже не идёт в ослике.
Тьху, блин. Что-то я в порядках потерялся. Да, ты прав. Sorry. Надо почитать какую нагрузку выдают онлайновые флеш клиенты.
У нас проблемы с обработкой были когда куча данных отправлялось множеством маленьких отдельных пакетов. Но это всё на флеше оптимизируется. Ещё сильно зависит от протокола и производительности парсера. На XML флекс быстро умирает.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855196
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
я дома тормоза флеша сужу по этой:
http://www.speedtest.net/
там картинка на флеше, и долговато грузится.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855218
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123я дома тормоза флеша сужу по этой:
http://www.speedtest.net/
там картинка на флеше, и долговато грузится.
эээ, так приложение один раз грузится и кешируется в браузере до следующего апдейта. К производительности это вообще не относиться
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855219
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sorry
База и сервак разве разнесены физически?
-да
И между ними в добавок узкий канал?

сервак \ база \ мы \ клиентура

мы \ мы \ гуд\ нот гуд
мы \ там \ нотгуд\ бэд
там\ там \ бэд\ вери бэд
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855226
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,
я не замерял. Редко запускаю раз в пол-года.
Помню только впечатления от флеша...на уровне ламера-пользователя рессурса))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855230
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanтам\ там \ бэд\ вери бэд
)) профайлер ))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855259
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvansorry
База и сервак разве разнесены физически?
-да
И между ними в добавок узкий канал?

сервак \ база \ мы \ клиентура

мы \ мы \ гуд\ нот гуд
мы \ там \ нотгуд\ бэд
там\ там \ бэд\ вери бэд
Такое ощущение, что это нам тут всем жутко нужно разобраться в вашей проблеме. Поэтому мы должны разгадывать ваши загадки?
Тоже самое по-русски можно?
Вы определили что тормозит (перегружен) канал между сервером и базой данных. ОК. Тормозит только из-за SELECT запросов или вы там BLOB-ы постоянно гоняете тоже? А гигабитный канал от базы до сервера провести нельзя?
А зеркало поставить?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855311
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
IDVsbruckНе, не шути так ... уже, оказывается, 4.6 вышел ... и планов у них много.
Отказался Adobe от Flex. Они его передали в Apache Foundation, пообещав, выделить разработчиков на fulltime.

Еще момент - Flash в Линуксе поддерживается только в chrome.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855321
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123silvan,

флекс на 1 мбт в сек загибается.
Это какая-то ерунда написана.
Если один раз загрузить приложение, которое никуда ничего не шлет - то и слабого канала хватит. Лишь swf-ка (1-2Мб) загрузилась. А AMF очень экономичный сам по себе. Гораздо экономичнее SOAP и, думаю, JSON.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855332
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123silvanдомашних 2мбт
у меня тоже 2. Был один. )))
жадина)


на экран, пагинацию еле пробили, не хотят кликать хотят крутить.если подгружать при прокрутки до временного дна пугаются..
после того как данные прилетели пагится нормально.
без пагинации тормозит. основной трабл в доставке данных на клиентскую часть.
следующий трабл, у клиентов аппараты слабенькие кучу скрипта плохо переваривают
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855350
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanосновной трабл в доставке данных на клиентскую часть
ещё несколько сообщений назад основной трабл был в ширене запросов между сервером и базой.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855383
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЕще момент - Flash в Линуксе поддерживается только в chrome.
а в firefox?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855429
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanна экран, пагинацию еле пробили, не хотят кликать хотят крутить.если подгружать при прокрутки до временного дна пугаются..
после того как данные прилетели пагится нормально.
без пагинации тормозит. основной трабл в доставке данных на клиентскую часть.
следующий трабл, у клиентов аппараты слабенькие кучу скрипта плохо переваривают
не надо сразу всё.
ПАГИНАЦИЯ или ЛЕНИВЫЙ ГРИД.
разберитесь что нужно.
Насколько знаю, Ваадин ленивый грид недавно сделал.
Вот и тестите ОДИН грид с миллионом.

Ленивый грид на миллион им всё равно неудобно будет.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855479
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpashaLeonidvЕще момент - Flash в Линуксе поддерживается только в chrome.
а в firefox?

Adobe прекращает распространение Flash-плагина для Linux
http://www.linux.org.ru/forum/talks/7448431
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855498
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowicz
Тоже самое по-русски можно?
ещё несколько сообщений назад основной трабл был в ширене запросов между сервером и базой

приатачил файлик
А гигабитный канал от базы до сервера провести нельзя?

не можем каналы расширять.подобные наши рекомендации заворачиваются

Petro123, пагинацию сделали, приходится ждать пока табличка сформируется потом работаем.
запра шиваем иную таблицу снова ждем..
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855516
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanприходится ждать пока табличка сформируется потом работаем.
расшифруй.
Тут на форуме - не ждёшь как на работе?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37855905
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У вас проблема не в хибернейте и ваадине, а в управлении проектами.
Отсутствие квалифицированных разработчиков, использование большого числа сложных технологий, нереальные требования пользователей.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37856143
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123silvanприходится ждать пока табличка сформируется потом работаем.
расшифруй.
Тут на форуме - не ждёшь как на работе?
в прикладе жмем кнопку для формирования таблички.долго смотрим на колесо ожидания.после того как табличка сформировалась можно по страничкам листать без задержек.
на форуме не жду.каналы разные.

Йуный джавистЪУ вас проблема не в хибернейте и ваадине, а в управлении проектами.
Отсутствие квалифицированных разработчиков, использование большого числа сложных технологий, нереальные требования пользователей.
Спасибо, кэп.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37856211
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanна форуме не жду.каналы разные.
не верю (с)
...
Рейтинг: 0 / 0
неудача.что делать?
    #37856609
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123silvanна форуме не жду.каналы разные.
не верю (с)
а в большинстве своем так и есть. только в одном офисе внтутренняя сеть идет поверх инета, приходится vipnet переключать.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37856646
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,
я не верю как программист. Трейс давай, запросы, профилировку...
Удачи!
...
Рейтинг: 0 / 0
неудача.что делать?
    #37856984
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123, куда я трейс пошлю?
не верете, не надо.но то что одно ползет по кабелю а другое по воздуху факт.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857232
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanPetro123, куда я трейс пошлю?
не верете, не надо.но то что одно ползет по кабелю а другое по воздуху факт.
Петро не про это пишет. Очень похоже, что вы занимаетесь гаданием места ошибки. А лучше провести анализ и найти бутылочное горлышко, которое и нужно решать. 650кб - это хороший канал.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857383
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv,как вы предлагаете проводить анализ?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857403
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,
найти того, кто писал код, и попросить замерить все участки кода по времени.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857511
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам нужно сделать следующее:
1)Понять, что же все-таки тормозит - получение данных из базы, или отправка данных пользователю. Судя по тому, что с локальной базой у вас все работает быстро, то скорее всего дело в базе.
2)Включить логгирование SQL запросов (на уровне Hibernate или JDBC). Посмотреть, сколько SQL запросов выполняется на один запрос пользователя (нормальное значение - не больше 5). Проанализировать эти запросы. Создать необходимые индексы. Включить в Hibernate в нужных местах eager fetching. Посмотреть, нет ли у вас такого, что вы делаете запрос, а потом на каждую строчку делаете еще один запрос (это обычно самая главная причина тормозов). Заменить все такие места на join. Мне таким образом удавалось разгонять скорость работы с двух часов до двадцати секунд.
3)Как я понял, вы высасываете все данные из базы, а потом выдаете их в грид. Грид сам делает по ним пейджинг. Этот подход крайне неправильный. Должен делаться запрос к базе на каждое перелистывание страницы.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857526
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Йуный джавистЪ,
+1
...
Рейтинг: 0 / 0
неудача.что делать?
    #37857548
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по ТЗ: выдать клиенту все договора

Вы в ваадин все договора выдаете? То есть на ОДНОЙ странице интерфейса просмотр ВСЕХ договоров?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37858127
Йуный джавистЪ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidv,как вы предлагаете проводить анализ?

1)Инструментировать java функции руками. Например, у вас есть функция
getContracts(){
//bla bla bla
}

Вы вставляете

getContracts(){
long t = System.currentTimeInMillis();
//bla bla bla
System.out.println("getContracts "+((double)t-System.currentTimeInMillis())/1000);
}
Делаете запрос к проблемной странице, смотрите, что пишется в лог, делаете выводы.

2)Включить логирование запросов на стороне СУБД.

3)Взять Firefox+firebug, посмотреть какие XMLHttpRequest тормозят.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874238
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я ошибся в производственной системе сервер приложений там же где и база.загруженность агрегата высокая.
на данный момент воткнули таймер на запросах и преобразованиях в ДТО.
запросы шустро летят.самый тормозной 2 сек.
основная просадка получается в преобразовании в ДТО
1 объект создается 3 сек умножаем на тысячи получаем минуты.сильно ускориться можем если не все сразу преобразовывать будем, но все равно будет хреново(((

так же у клиентов аппараты дохленькие.говорят если скрол на табличках потянуть вниз подтормаживает.
итого проблема комплексная. 1)полный пересмотр сервис слоев и дао 2)морду надо разгружать.

пичалька.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874284
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan1 объект создается 3 сек умножаем на тысячи получаем минуты.
Что именно включается в процесс создания объекта? 3 секунды - это оооочень долго.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874440
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv, в большинстве своем проверку на нулл и расшивровку кодов по мапам.последнее считаю что должно быть на уровне бд но на текущий момент это невозможно.иногда парсинг строки
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874470
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanLeonidv, в большинстве своем проверку на нулл и расшивровку кодов по мапам.последнее считаю что должно быть на уровне бд но на текущий момент это невозможно.иногда парсинг строки
Приведите пример кода. Нечему там делаться 3 секунды.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874471
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanLeonidv, в большинстве своем проверку на нулл и расшивровку кодов по мапам.последнее считаю что должно быть на уровне бд но на текущий момент это невозможно.иногда парсинг строки
И напишите модульный тест на преобразование. Eclipse/IDEA показываются время выполнения теста в миллисекундах.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874552
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,

Сколько же там мап и пар ключ-значение в них? Или сколько проверок на каждый распарсенный ключ-значение?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874585
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Большой Синий Китsilvan,

Сколько же там мап и пар ключ-значение в них?
По идее количество элементов в HashMap не должно влиять производительность. Обычно там скорость очень близка к O(1) (подсчитать хэш и найти элемент в массиве по хэшу). Правда это только в том случае, если хэш код рассчитывается корректно.

http://stackoverflow.com/questions/4553624/hashmap-get-put-complexity
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874596
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvПо идее количество элементов в HashMap не должно влиять производительность. Обычно там скорость очень близка к O(1) (подсчитать хэш и найти элемент в массиве по хэшу). Правда это только в том случае, если хэш код рассчитывается корректно.

А вот когда хэшкоды совпадают у разных по equals объектов, тут-то HashMap и деградирует очень быстро.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874608
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
один из методов
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
   public List<ArchiveTO> getALL() throws ParseException {

        if(logger.isDebugEnabled()){
            logger.debug("GET ALL FROM ARCHIVE");
        }


        List<ArchiveTO> listArchiveTO = new ArrayList();

        if(logger.isDebugEnabled()){
            t = System.currentTimeMillis();
        }

        List<KU_ARHC_OGR> listArch = dao.selectALL();
        for( KU_ARHC_OGR ku_arhc_ogr : listArch){
            ArchiveTO archiveTO = new ArchiveTO();
            SimpleDateFormat df = new SimpleDateFormat("dd.MM.yyyy HH:mm");
            archiveTO.setCorrectionDate(new java.sql.Date(df.parse(df.format(ku_arhc_ogr.getId().getCOR_TIME())).getTime()));
            archiveTO.setCorretionType(correctionTypeMap.get(ku_arhc_ogr.getCOR_TIP().trim()));
            archiveTO.setUserId(ku_arhc_ogr.getID_USER());
            archiveTO.setUserName(ku_arhc_ogr.getNAME_USER());

            // контроль
            archiveTO.setControlName(StaticCollectionsService.getControlmap().get(ku_arhc_ogr.getKOD_OBR().trim())) ;
            //номер документа
            archiveTO.setDocNumber(ku_arhc_ogr.getNOM_DOC().trim());
            // дорога погрузки
            archiveTO.setRwLoadName(sqlQueryNSIService.getRwBiMap().get(Short.parseShort(ku_arhc_ogr.getId().getDOR_RASCH().trim())));
            //станция погрузки
            archiveTO.setStationLoadName(sqlQueryNSIService.getStationBiMap().get(ku_arhc_ogr.getId().getSTAN_POGR())) ;
            //дорога назначения
            archiveTO.setRwAppointmentName(sqlQueryNSIService.getRwBiMap().get(ku_arhc_ogr.getId().getDOR_NAZN())) ;
            //отделение назначения
            archiveTO.setBranchAppointmentName(ku_arhc_ogr.getId().getNOD_POGR().toString());
            //Станция назначения
            archiveTO.setStationAppointmentName(sqlQueryNSIService.getStationBiMap().get(ku_arhc_ogr.getId().getSTAN_NAZN())) ;
            //наименование груза
            archiveTO.setCargoName(sqlQueryNSIService.getCargoBiMap().get(ku_arhc_ogr.getId().getROD_GRZ_OSN())) ;
            //наименование груза ЕТСНГ
            archiveTO.setCargoETSNGName(sqlQueryNSIService.getCargoETSNGBiMap().get(ku_arhc_ogr.getId().getKOD_GRZ_UCH())) ;
            //Администрация собственника
            archiveTO.setOwnersAdmName(sqlQueryNSIService.getAdmBiMap().get(ku_arhc_ogr.getId().getKOD_SOB())) ;
            //Род вагона
            archiveTO.setVansTypeName(sqlQueryNSIService.getVansTypeBiMap().get(ku_arhc_ogr.getId().getROD_VAG_UCH())) ;
            //призак принадлежности вагонов
            archiveTO.setVansSignOfBelong(StaticCollectionsService.getVansSignOfBelong(Integer.parseInt(ku_arhc_ogr.getId().getPR_AR()), Integer.parseInt(ku_arhc_ogr.getId().getPR_SOB()), Integer.parseInt(ku_arhc_ogr.getId().getPR_MPS()))) ;
            //код предприятия собственника ОКПО
            archiveTO.setOkpo(ku_arhc_ogr.getId().getOKPO_SOB()==null?0:ku_arhc_ogr.getId().getOKPO_SOB()) ;
            //Вид ограничения
            archiveTO.setRestrictionTypeName(StaticCollectionsService.getRestrictiontypemap().get(ku_arhc_ogr.getVID_OGR().trim())) ;
            //Количество вагонов
            archiveTO.setAmountVans(ku_arhc_ogr.getKOL_VAG()==null?0:ku_arhc_ogr.getKOL_VAG()) ;
            //Количество тонн
            archiveTO.setAmountTn(ku_arhc_ogr.getVES_GRZ()==null?0:ku_arhc_ogr.getVES_GRZ()) ;
            //Начало ограничения
            archiveTO.setRestrictionStart(ku_arhc_ogr.getDATE_NACH_OGR()) ;
            //конец ограничения
            archiveTO.setRestrictionEnd(ku_arhc_ogr.getDATE_OKON_OGR()) ;
            // ОКПО грузоотправителя
            archiveTO.setOkpoShipper(ku_arhc_ogr.getOKPO_GRUZOTPR()==null?0:ku_arhc_ogr.getOKPO_GRUZOTPR());
            // ОКПО грузополучателя
            archiveTO.setOkpoConsignee(ku_arhc_ogr.getOKPO_GRUZPOL()==null?0:ku_arhc_ogr.getOKPO_GRUZPOL());



            listArchiveTO.add(archiveTO);
        }

        if(logger.isDebugEnabled()){
            logger.debug("Total time of transformation into an object ArchiveTO is "+((double)(System.currentTimeMillis()-t))/1000 + "sec");
        }

        return listArchiveTO;
    }



авторСколько же там мап и пар ключ-значение в них?
до десятков тысяч
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874622
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvan,

Этот метод 3 секунды работает?
Какая реализация Map используется? Судя по названия, какая-то BiMap?

Запросы к БД уходят какие-нибудь? (например, здесь может уходить если используется hibernate с lazy ассоциацией):
Код: java
1.
ku_arhc_ogr.getId().getPR_AR()
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874625
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanдо десятков тысяч
Десятки тысяч в HashMap - это ни о чем, если хватает оперативки. Посмотрите, может вы в swap выпадаете?
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874684
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Под профайлером прогнать - сразу будет видно где затык.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874693
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

Это точно.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874717
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonidv,
этот метод работает около 5 минут
logTotal time of transformation into an object ArchiveTO is 279.589sec


используются com.google.common.collect.HashBiMap
судя по логам запросы в БД уходят единожды далее в ОП сидит все кроме самого архива(т.е. идет 1 запрос List<KU_ARHC_OGR> listArch = dao.selectALL())
listArch.size не померял :-(


авторПосмотрите, может вы в swap выпадаете?
как понять?...если подряд метод дернуть разницы никакой.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874719
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczПод профайлером прогнать - сразу будет видно где затык.
научите
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874739
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanBlazkowiczПод профайлером прогнать - сразу будет видно где затык.
научите
http://habrahabr.ru/search/?q= [visualvm]&target_type=posts
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874776
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvБольшой Синий Китsilvan,

Сколько же там мап и пар ключ-значение в них?
По идее количество элементов в HashMap не должно влиять производительность. Обычно там скорость очень близка к O(1) (подсчитать хэш и найти элемент в массиве по хэшу). Правда это только в том случае, если хэш код рассчитывается корректно.

http://stackoverflow.com/questions/4553624/hashmap-get-put-complexity

Я спрашивал об этом потому, чтобы понять, сколько валидаций на всю хешмапу идет.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874794
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S. Но это уже неактуально. :))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874802
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там ведь немало запросов к сервисам.
sqlQueryNSIService
StaticCollectionsService

Я правильно понимаю, что эти сервисы делают запросы в БД?
Если лист.сайз очень большой, запросы в сервисах неоптимизированы, в этом тогда может быть причина.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874806
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Прошу прощения, там мапы ведь уже все подгружены? :) Может, они каждый раз заново грузятся? :))
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874821
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
silvanBlazkowiczПод профайлером прогнать - сразу будет видно где затык.
научите
Если с профайлером тяжело, просто выводить logger.trace("1"), logger.trace("2) и т.д. Логгер настроить так, чтобы время попадало с миллисекундами.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874825
Большой Синий Кит
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonidvsilvanпропущено...

научите
Если с профайлером тяжело, просто выводить logger.trace("1"), logger.trace("2) и т.д. Логгер настроить так, чтобы время попадало с миллисекундами.
+1
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874833
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЕсли с профайлером тяжело, просто выводить logger.trace("1"), logger.trace("2) и т.д. Логгер настроить так, чтобы время попадало с миллисекундами.
Ню-ню.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874906
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczLeonidvЕсли с профайлером тяжело, просто выводить logger.trace("1"), logger.trace("2) и т.д. Логгер настроить так, чтобы время попадало с миллисекундами.
Ню-ню.
Локализовать проблемный вызов сможет.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874923
silvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большой Синий КитТам ведь немало запросов к сервисам.
sqlQueryNSIService
StaticCollectionsService

Я правильно понимаю, что эти сервисы делают запросы в БД?
Если лист.сайз очень большой, запросы в сервисах неоптимизированы, в этом тогда может быть причина.
sqlQueryNSIService лазит в БД только при первом обращении к необходимой мапе.далее эта мапа заполнена и повторного заполнения нет
StaticCollectionsService этот в бд не лазит, там коллекции заполненные вручную
авторПрошу прощения, там мапы ведь уже все подгружены? :) Может, они каждый раз заново грузятся? :))
уже да.нет.
авторЕсли с профайлером тяжело, просто выводить logger.trace("1"), logger.trace("2) и т.д.Логгер настроить так, чтобы время попадало с миллисекундами.
не совсем понял..время лога в логе указывается..
лог…DEBUG Logger: finder.PerformanceInterceptor Date: 2012-07-09 10:14:55,474
...
…DEBUG Logger: persistance.KU_ARHC_OGRService Date: 2012-07-09 10:19:30,485 - Total time of transformation into an object ArchiveTO is 279.589sec
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874930
Leonidv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я про это:
Код: java
1.
2.
3.
4.
5.
6.
        
logger.trace("archiveTO.setControlName(StaticCollectionsService.getControlmap().get(ku_arhc_ogr.getKOD_OBR().trim()))")  
archiveTO.setControlName(StaticCollectionsService.getControlmap().get(ku_arhc_ogr.getKOD_OBR().trim())) ;

logger.trace("archiveTO.setDocNumber(ku_arhc_ogr.getNOM_DOC().trim())")  
archiveTO.setDocNumber(ku_arhc_ogr.getNOM_DOC().trim());



Но профайлер все равно круче.
...
Рейтинг: 0 / 0
неудача.что делать?
    #37874932
sanBez
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeonidvЛокализовать проблемный вызов сможет.

А если они все работают примерно одинаково плохо? Или скорость метода изменяется по мере накопления данных?
Это только если сразу видно что что-то одно тормозит, тогда засечка по времени поможет.

To TC
Простые методы типа вынести new SimpleDateFormat за цикл, или как-нить избавиться от parseInt никак не помогут хоть чуть?
...
Рейтинг: 0 / 0
84 сообщений из 84, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / неудача.что делать?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]