Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 16 17 18 19 20 21 [22] 23 24 25   вперед  Ctrl
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Вадя.

Конечно трехзвенка + БД будет медленнее. Потому что БД помимо чтения строк еще и читает
их в "четвертом измерении". Она скользит по версионному снапшоту (это справедливо для Oracle/PG
всегда). Для MySQL - не знаю. Там опционально InnoDb/MyISAM.

Тоесть чтение строк из БД сильно-сильно отличается от чтения строк текстового файла.

И прикладной протокол поверх network который использует Jdbc-драйвер чуть более тяжел
чем http.
9 апр 20, 16:55    [22113688]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
booby
Member

Откуда:
Сообщений: 1939
вадя
...
в нем нет работы по формированию строки на java - нет кода потому что он не нужен. нет кода нет места для потери времени - значит будет быстрее случая с этим кодом

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

нет кода нет места для потери времени

это истинное утверждение само по себе.
быстрее всего работает тот код, которого физически нет.

твоя логическая ошибка состоит в том, что суть твоего утверждения такая:
раз я не вижу теперь этого куска кода в своем исходном месте, значит точно стало быстрее - видите - нет здесь этого кода, значит быстро.

но в твоем случае это не так, код не исчез после того, как ты его "вынул".
ты его перенес в другое место.
от этого он не перестал существовать и не перестал выполняться.
от факта любого рода переноса "само по себе" ничего не происходит,
и уж точно не происходит "навсегда".
что "стало" после переноса - это не вопрос веры, а вопрос измерения,
и только измерения, а не веры в то, что уж в другом-то месте абсолютно точно "будет быстрее".

Хуже того, никакое измерение, сделанное вчера не гарантирует,
что произведенные на его основе выводы
сохранят свою истинность на любое произвольно взятое завтра.
9 апр 20, 16:58    [22113690]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
mayton
И прикладной протокол поверх network который использует Jdbc-драйвер чуть более тяжел
чем http.
Правда-правда?
"И в каком количестве наносекунд это выражается?" (ц) hVostt
9 апр 20, 16:59    [22113691]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Basil A. Sidorov
mayton
И прикладной протокол поверх network который использует Jdbc-драйвер чуть более тяжел
чем http.
Правда-правда?
"И в каком количестве наносекунд это выражается?" (ц) hVostt

А сравнительная степень (больше-меньше) не подходит?
9 апр 20, 17:19    [22113708]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
hVostt
Проверять их ты не собираешься.
я уже 22 страницы твержу что хочу сравнить - меня перевирают - говорят , что я не не собираюсь сравнивать - ну не наглость ли это?
booby
твоя логическая ошибка состоит в том, что суть твоего утверждения такая:
раз я не вижу теперь этого куска кода в своем исходном месте, значит точно стало быстрее - видите - нет здесь этого кода, значит быстро.

но в твоем случае это не так, код не исчез после того, как ты его "вынул".
ты его перенес в другое место.
от этого он не перестал существовать и не перестал выполняться.
от факта любого рода переноса "само по себе" ничего не происходит,
и уж точно не происходит "навсегда".
что "стало" после переноса - это не вопрос веры, а вопрос измерения,
и только измерения, а не веры в то, что уж в другом-то месте абсолютно точно "будет быстрее".
вот что-то более толковое
да я перенёс "часть кода" в запрос. убрал эту часть из кода java.
запрос к базе остаётся в любом случае только, возвращать он базе разный результат
в моём случае это готовая строка , которая отправляется в браузер и вставляется в dom одной командой.
в вашем случае есть 2 варианта -
1 из простейшего резульсета формируется json, который отправляется в браузер и преобразуется в .. и вставляется в dom
2 из простейшего результсета формируется html строка , которая отправляется в браузер и вставляется в dom одной командой
замеряется время от запуска запроса до отправления по ws.

booby
Хуже того, никакое измерение, сделанное вчера не гарантирует,
что произведенные на его основе выводы
сохранят свою истинность на любое произвольно взятое завтра.
с этим согласен (особенно для java)

таблица с деревом не большая и в любом случае вся кешируется - т.е. время выполнения 2 вариантов запроса можно считать константой (по сравнению времени выполнения java)
для достоверности можно сделать многократное выполнение и вычислить среднее

Сообщение было отредактировано: 9 апр 20, 17:19
9 апр 20, 17:19    [22113709]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
booby
Member

Откуда:
Сообщений: 1939
вадя,

я по дружески, но настоятельно советую забыть тебе про "ваш случай".
для настоящего индейца этот "ваш случай" - вымышленная реальность.
ничего кроме "моего" конкретно случая в природе не существует.
9 апр 20, 17:23    [22113711]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
вадя

таблица с деревом не большая и в любом случае вся кешируется - т.е. время выполнения 2 вариантов запроса можно считать константой (по сравнению времени выполнения java)
для достоверности можно сделать многократное выполнение и вычислить среднее

Это еще одно дополнение. Его тоже надо подшить к твоим NFR?
9 апр 20, 17:24    [22113713]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
booby
я по дружески, но настоятельно советую забыть тебе про "ваш случай".
для настоящего индейца этот "ваш случай" - вымышленная реальность.
ничего кроме "моего" конкретно случая в природе не существует.
на самом деле мне просто интересно для себя сравнить что есть что, я не хочу никому ничего доказать.
я просто прошу ваш код, потому что я думаю, что предложат лучший вариант, чем я смогу сделать сам.
9 апр 20, 17:27    [22113715]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
booby

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

Дядечка ты со своим диалектическим материализмом совсем парня запутал.

Ты тово этово. Не включай такой микрофон. Лучше - по простому. По дружески.
9 апр 20, 17:30    [22113716]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
mayton
Это еще одно дополнение. Его тоже надо подшить к твоим NFR?
это как угодно.
для меня это просто предположения. в ответ на замечание

booby
Хуже того, никакое измерение, сделанное вчера не гарантирует,
что произведенные на его основе выводы
сохранят свою истинность на любое произвольно взятое завтра.

можно засекать время и после выполнения запроса - заодно и проверить разницу в работе выполнения запроса
9 апр 20, 17:32    [22113717]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17476
вадя
hVostt
Проверять их ты не собираешься.
я уже 22 страницы твержу что хочу сравнить - меня перевирают - говорят , что я не не собираюсь сравнивать - ну не наглость ли это?


Так сравнивай, чего ты ждёшь?
Пиши код, сравнивай.
Показывай.

Почему люди должны это за тебя делать?
Ты хочешь, а вы делайте.

Что за ушлый подход у тебя такой.
9 апр 20, 17:32    [22113719]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
hVostt
Так сравнивай, чего ты ждёшь?
Пиши код, сравнивай.
Показывай.

вадя
я просто прошу ваш код, потому что я думаю, что предложат лучший вариант, чем я смогу сделать сам.
9 апр 20, 17:33    [22113721]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17476
вадя
hVostt
Так сравнивай, чего ты ждёшь?
Пиши код, сравнивай.
Показывай.

вадя
я просто прошу ваш код, потому что я думаю, что предложат лучший вариант, чем я смогу сделать сам.


Лучший вариант == написать для тебя код?

Что за ушлый подход у тебя такой?

Тебе сказали, что генерировать HTML в БД это дерьмовый подход, и ничего не даёт.
А ты упираешься, говоришь, даёт.

Ну раз даёт, так проверь. Что конкретно оно тебе даёт.

Пока очевидно, что ты тупо не знаешь, что. Не знаешь, и хочешь, чтобы тебе код написали, а ты запустил и посмотрел.
9 апр 20, 17:37    [22113724]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
hVostt
Тебе сказали, что генерировать HTML в БД это дерьмовый подход, и ничего не даёт.
ну не хочешь - не надо
но зачем утверждаешь что ничего не даёт? это твои умозаключения на пустом месте или есть цифры?
я хочу увидеть цифры.
9 апр 20, 17:42    [22113727]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
hVostt
Лучший вариант == написать для тебя код?
если ты не можешь написать лучше чем я, отвали в сторону
9 апр 20, 17:44    [22113728]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
booby
Member

Откуда:
Сообщений: 1939
вадя
...на самом деле мне просто интересно для себя сравнить что есть что, я не хочу никому ничего доказать.
я просто прошу ваш код, потому что я думаю, что предложат лучший вариант, чем я смогу сделать сам.

это я с первого твоего поста понимаю.
но ты же видишь - внешнего мира не существует.
по крайней мере, пока ты его не создашь для себя сам.
(как Бугаенко, например)
то есть ты не можешь сравнивать себя ни с кем, кроме себя самого,
хотя бы вымышленного, по причине отсутствия иных.
Нет шансов.

И это, длинная дорога с первого шага начинается.
Попробуй построить сравнительные таблицы для того своего случая, о котором ты
сейчас всё знаешь.
Тогда, может быть, при удачном построении планет,
в синхронизации с подходящей фазой Луны, измышляемый тобой мир как-то изменится.
И в этом новом мире ты вновь сможешь сравнить себя самого с самим собой.
9 апр 20, 17:48    [22113735]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
booby
Member

Откуда:
Сообщений: 1939
mayton
..
совсем парня запутал.
...

скорее дедушку.
мне можно.
:))
9 апр 20, 17:55    [22113741]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
вадя
я хочу увидеть цифры.

а я ГУИ ))))))))
А тебя с цифрами послать подальше.
9 апр 20, 20:34    [22113830]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
вадя
Member

Откуда: Екатеринбург
Сообщений: 17735
сделал так
        String f = String.format("{call %s()}", "page1_xxx010 ");
        long time1;
        long time = System.nanoTime();
        try (Connection con = dataSource.getConnection();
                CallableStatement proc = con.prepareCall(f);) {
            rs = proc.executeQuery();
            JSONArray json = new JSONArray();
            ResultSetMetaData rsmd = rs.getMetaData();
            while (rs.next()) {
                int numColumns = rsmd.getColumnCount();
                JSONObject obj = new JSONObject();
                for (int i = 1; i <= numColumns; i++) {
                    String column_name = rsmd.getColumnName(i);
                    obj.put(column_name, rs.getObject(column_name));
                }
                json.put(obj);
            }
            json.toString();

            time1 = System.nanoTime();
            System.out.printf(Locale.ROOT, "время запроса %,d\n\n", time1 - time);
//            System.out.println(json.toString());
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        f = String.format("{call %s()}", "page1_xxx010_orig ");
        time = System.nanoTime();
        try (Connection con = dataSource.getConnection();
                CallableStatement proc = con.prepareCall(f);) {
            rs = proc.executeQuery();
            rs.next();
            rs.getString(1);
            time1 = System.nanoTime();
            System.out.printf(Locale.ROOT, "время запроса %,d\n\n", time1 - time);
        } catch (SQLException ex) {
            ex.printStackTrace();
        }

1 вариант подготовка json для отправки браузеру
запрос (хранимка)
 SELECT
  st.id,
  st.id_parent,
  st.`order`,
  st.name
FROM spr_type st; 


время запроса 280,733,801

2 вариант мой запрос(хранимка) см. в первом посте
время запроса 5,099,199
9 апр 20, 22:14    [22113869]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
Alexander A. Sak
Member

Откуда: Омск
Сообщений: 1090
Офигеть. Ты победил.
Может, статью на хабре запилишь?
9 апр 20, 22:23    [22113873]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17476
вадя,

Не прошло и пол года. Десяток строчек кода, очень сложно было?
Полагаю, теперь ты должен навсегда отказаться от JSON.
Разница по твоим показателям в 56 раз.
9 апр 20, 23:11    [22113892]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
SpringMan
Member

Откуда:
Сообщений: 166
вадя,

Твой тест сейчас может показать вообще случайные значения. Непонятно как переиспользуются коннекты и переиспользуются ли + что и на каком этапе у тя в базе/в буферах закешировалось. Начни хотя бы с этого:
1) Напихай в табличку несколько тысяч записей
2) Сделай не один вызов, а пару-тройку сотен
3) Вынеси getConnection из измерения времени
4) Сделай запрос, который отдает не все дерево, а начиная с конкретного parent-а. И в тестах рандомь этот parent

Сообщение было отредактировано: 10 апр 20, 00:52
10 апр 20, 00:47    [22113930]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Отлично. Пошла тема бенчмарков.
Почему-то вспомнился Студентик-базист.

Развивая идею Вади.

Надо 100% html странички сформировать в БД.
В виде blob. И отдать в 1 datarow.

Пойдем ad absurdum. От обратного.
10 апр 20, 08:37    [22113971]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
SpringMan
вадя,

Твой тест сейчас может показать вообще случайные значения. Непонятно как переиспользуются коннекты и переиспользуются ли + что и на каком этапе у тя в базе/в буферах закешировалось. Начни хотя бы с этого:
1) Напихай в табличку несколько тысяч записей
2) Сделай не один вызов, а пару-тройку сотен
3) Вынеси getConnection из измерения времени
4) Сделай запрос, который отдает не все дерево, а начиная с конкретного parent-а. И в тестах рандомь этот parent

+1
ТС работает больше отвечающих" (с)
Если ТС не набрасывает на вентилятор.
10 апр 20, 09:37    [22113983]     Ответить | Цитировать Сообщить модератору
 Re: Что такое серверный рендеринг  [new]
hVostt
Member

Откуда:
Сообщений: 17476
mayton
Надо 100% html странички сформировать в БД.
В виде blob. И отдать в 1 datarow.


Этого явно недостаточно.

Нужно ведь ещё запросы обрабатывать от клиента. Вадя выяснил, что JSON ужасно медленный и неповоротливый, понятно почему интернет такой медленный. Поэтому нужно данные конкатенацией объединять в строку и разбирать в БД.
10 апр 20, 10:16    [22113990]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 .. 16 17 18 19 20 21 [22] 23 24 25   вперед  Ctrl
Все форумы / Java Ответить