|
|
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Доброго дня господа ! Имею тему Функция Java внедренная в базу Oracle В ней ресурс на 40 тыс срок (текст) По нему необходимо организовать поиск - поиск по kind,duration,grace,monthly - возврат amount[],unpaid[],outstanding[] - оптимизация if(i==(duration+1)*3) break; - прерывание если набор данных уже заполнен, т.е. цикл не работает по всему ресурсу - сверху расположены группы, которые по статистике втречаются чаще в вызывающем потоке Делаю так Код: 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. Общая продолжительность поиска достаточно высока, так как запускается сама функция 15-20 тыс раз Подскажите нет ли в java типов, механизмов которые осуществили ли мне быструю реализация Заранее благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 13:09 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, Ресурс выглядит так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 13:17 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X...так как запускается сама функция 15-20 тыс раз Подскажите нет ли в java типов, механизмов которые осуществили ли мне быструю реализация создать нормальный тип/класс. Один раз загрузить (распарсить ресурс), потом работать по уже загруженным данным. В чем проблема, не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 13:55 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, А почему бы этот "ресурс" не загрузить в базу, как таблицу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 14:42 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
GarrickHOME_X, А почему бы этот "ресурс" не загрузить в базу, как таблицу? Причина - архитектурного характера, функция будет находиться в базе но не будет иметь непосредственной связи с базой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 16:44 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevHOME_X...так как запускается сама функция 15-20 тыс раз Подскажите нет ли в java типов, механизмов которые осуществили ли мне быструю реализация создать нормальный тип/класс. Один раз загрузить (распарсить ресурс), потом работать по уже загруженным данным. В чем проблема, не понятно. Не понял Вас У меня есть функция Java (вызывается SQL запросом) в ней ресурс (40 тыс. записей) Функция вызвалась - произошло распар-е ресурса, функция отработала, память очистилась Следующая запись SQL снова вызывает функцию - распар-е - возврат результата , очистка. Итак 20-30 тыс. записей = 20-30 тыс. вызовов функции. Или знаете другой пример, прошу привести Заранее благодарен ! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 16:49 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XПричина - архитектурного характера, функция будет находиться в базе но не будет иметь непосредственной связи с базой Что мешает эту связь добавить? Вы понимаете, что вы хотите свою собственную БД на базе текстового файла внутри уже существующей БД? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 16:51 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XСледующая запись SQL снова вызывает функцию - распар-е - возврат результата , очистка. Итак 20-30 тыс. записей = 20-30 тыс. вызовов функции. 1) Традиционный способ. Распарсить, вызвать N-раз функцию в пределах SQL, очистить память (или руками или при окончании сессии Oracle). Oracle под рукой нет, да и приложение Ваше не знаю, но парсить 20-30 тыс. раз на каждое обращение в SELECT - это жесть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:08 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, Более чем понимаю..... мне нужна единая JAR библиотека, которая будет вызываться интегрироваться и вызываться не только из базы., а из под Windows Соответственно эдакой набор констант приходиться держать во внутри исполь-го файла. Увы.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:17 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Но не в виде же текста, в конце концов! И падеж типов в коде, тоже доставляет. Параметр с типом int, а парсинг и сравнение идет с Double ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:24 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, Тогда вам нужна любая легковесная БД типа SQLite, HSQL, H2, JavaDB/Derby. Можно её, конечно, написать самому, но зачем? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:27 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Ну и на худой конец, откройте хотя бы для себя паттерн Singleton Желательно почитать, что значит слово cache. Но тут советовать не берусь, т.к. не знаю Ваши объемы данных, где все это будет исполняться и насколько много разных ресурсов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:28 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
BlazkowiczТогда вам нужна любая легковесная БД типа SQLite, HSQL, H2, JavaDB/Derby. Можно её, конечно, написать самому, но зачем? Нафига? Явно конструкции вида: duration >= Double.parseDouble(parts[2]) duration <= Double.parseDouble(parts[3]) grace >= Double.parseDouble(parts[4]) grace <= Double.parseDouble(parts[5]) monthly >= Double.parseDouble(parts[6]) monthly <= Double.parseDouble(parts[7]) duration >= Double.parseDouble(parts[8]) по индексам фактически не соптимизируются. А использовать СУБД для тупого перебора... можно и самому в коде перебрать, еще и быстрее будет (если работать в памяти и руки иметь прямые) IMHO ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:31 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev, Извините не понял Вас По пунктам 1. java класс внедрен в базу Oracle 2. заведен тип базы который отвечает за связь с эти классом 3. делаем вызов SQL запроса, который ссылается на этот тип базы Пример Код: 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. 75. Прошу Вас описать Ваше предложение на маленьком примере ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:32 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, По поводу текущего кода. - Загрузите данные в память, а не читайте из ресурсов. - Используйте любой простейший индекс для kind. Хотя бы HashMap. В принцпе, если записей в каждом kind не много, то итерация по одной группе будет достаточно быстрой. Но можно и внутри каждого kind сгруппировать следующий параметр и оптимизировать его поиск аналогичным способом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:35 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHOME_X, Тогда вам нужна любая легковесная БД типа SQLite, HSQL, H2, JavaDB/Derby. Можно её, конечно, написать самому, но зачем? Как это ставить на N- пользовательских ПК ? Разрешение СБ и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:35 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XПрошу Вас описать Ваше предложение на маленьком примере 1. Загрузку и разбор по строкам и по полям нужно делать один раз для всех данных. Результат хранить в статическом поле. Надо вообще почитать как именно там Oracle экземплярами JVM управляет. Могут быть нюансы. Это уже вам даст огромный прирост скорости. Если этого не достаточно, оптимизируйте перебор. 2. То что вы загрузили, поместите в структуру HashMap<String, MyDomainModelTextFileRecordName>. Заполняйте её при чтении в п.1, так чтобы ключом сделать, например, группу. Померяйте производительность ещё раз. Если снова недостаточная, можно сделать 3. второй индекс HashMap<String, HashMap<String, MyDomainModelTextFileRecordName>>, где первый ключ это kind, а второй - че у вас там в первой колонке. Сколько у вас таких файлов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:42 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XBlazkowiczHOME_X, Тогда вам нужна любая легковесная БД типа SQLite, HSQL, H2, JavaDB/Derby. Можно её, конечно, написать самому, но зачем? Как это ставить на N- пользовательских ПК ? Разрешение СБ и т.д. Embedded. Точно так же как вы подключаете jar вашего проекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:43 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Leonid Kudryavtsev можно и самому в коде перебрать, еще и быстрее будет (если работать в памяти и руки иметь прямые) как хранить поток, изначально описать как типовой массив ? на 40 тыс. записей Если это "...Хотя бы HashMap...." откуда его грузить ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:43 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XЕсли это "...Хотя бы HashMap...." откуда его грузить ? ? Из вашего файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:44 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X1. java класс внедрен в базу Oracle 2. заведен тип базы который отвечает за связь с эти классом 3. делаем вызов SQL запроса, который ссылается на этот тип базы Сколько много умных слов, что бы в результате породить вызов одной функции. Blazkowicz- Загрузите данные в память, а не читайте из ресурсов. Вот и я об этом! 1) При этом, создавать классы Home_X вроде умеет (я такого в Oracle не умею) Ну загрузи ты в конструкторе ресурс, а в ф-ции обработки (разумеется НЕ static) им и пользуйся Ну и понятное дело, не понятно, нафига нужно создавать экземпляр на каждую исходную запись. 2) Даже не умея создавать классы/экземпляры, никто не мешает сделать Singleton и там закешировать загруженный ресурс. Жить правда будет наверное до конца Oracle сесии, т.ч. это опасная идея (смотря как реализовать) - но в качестве костыля, вполне. IMHO p.s. Примера не будет, Oracle под руками нет, да и желания нет. Я лучше пива выпью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:51 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, Если у вас файлов много, то добавьте внутри них свой индекс, чтобы не читать каждую строку, а по индексу быстро найти нужный блок файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:53 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
BlazkowiczHOME_XПрошу Вас описать Ваше предложение на маленьком примере 1. Загрузку и разбор по строкам и по полям нужно делать один раз для всех данных. Результат хранить в статическом поле. Надо вообще почитать как именно там Oracle экземплярами JVM управляет. Могут быть нюансы. Это уже вам даст огромный прирост скорости. Если этого не достаточно, оптимизируйте перебор. 2. То что вы загрузили, поместите в структуру HashMap<String, MyDomainModelTextFileRecordName>. Заполняйте её при чтении в п.1, так чтобы ключом сделать, например, группу. Померяйте производительность ещё раз. Если снова недостаточная, можно сделать 3. второй индекс HashMap<String, HashMap<String, MyDomainModelTextFileRecordName>>, где первый ключ это kind, а второй - че у вас там в первой колонке. Сколько у вас таких файлов? 1. файл один, 2. загрузке в объект HashMap (здесь понятно) 3. чем и из чего распиливать = this.getClass().getResourceAsStream(resource); 4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово вызвать класс ресурсов, распилить его в память и прогнать по нему пул записей из 20 тыс. записей. Верно ли Вас понимаю - так разве возможно ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:54 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XБолее чем понимаю..... мне нужна единая JAR библиотека, которая будет вызываться интегрироваться и вызываться не только из базы., а из под Windows Я бы всё равно делал на JDBC, и выбирал бы базу из контекста. Если Oracle - читаем из Oracle, если нет, читаем через любую легковесную встроенную БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:55 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Очень странно работать внутри БД и при этом не использовать курсоры и реляционную алгебру. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 17:57 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X3. чем и из чего распиливать = this.getClass().getResourceAsStream(resource); Распиливать? У вас же есть код чтения всех полей из файла. Разница только в том что вы поля сразу выкидываете. А можно записывать в память. HOME_X4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово вызвать класс ресурсов, распилить его в память и прогнать по нему пул записей из 20 тыс. записей. Конечно. Но в пределах сессии. Чтобы зашарить данные между всеми сессиями, надо почитать как оно делается https://docs.oracle.com/cd/B19306_01/java.102/b14187/chtwo.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:00 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
maytonОчень странно работать внутри БД и при этом не использовать курсоры и реляционную алгебру. Становись в очередь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:00 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово вызвать класс ресурсов, распилить его в память В чем проблема? Любой PL/SQL пакет, секция инициализации. Другое дело, что тут зависит кто клиент. Если где-то есть пул коннектов к базе, то понятие "сессия" уже не то, что прежде. HOME_Xединоразово распилить его в память и прогнать по нему пул записей из 20 тыс. записей. Верно ли Вас понимаю - так разве возможно? А почему нет? В чем проблема? Это до Вас и пытаемся донести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:01 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Blazkowicz Я бы всё равно делал на JDBC, и выбирал бы базу из контекста. Если Oracle - читаем из Oracle, если нет, читаем через любую легковесную встроенную БД Не, извините, сложно для тиражирования, доп. инсталяция ... 4. "Oracle экземплярами JVM управляет" - т.е. Вы хотите сказать что для сессии возможно единоразово вызвать класс ресурсов, распилить его в память и прогнать по нему пул записей из 20 тыс. записей Подтвердите верно ли я Вас понял. Не понимаю как это реализовать и синтегрировать с Oracle-ом ? Пример (В КОДЕ) не подкините ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:04 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Во времена девятки у Oracle была очень жлобская JVM. Непроизводительная и по дефолту сконфигурированная на такой объем Xmx чтобы только написать Hello World. Даже для установки патчей на Oracle ей временно поднимали эту планку. Не знаю как щас. Наверное получше стало но при прочих равных условиях я-бы лишний раз подумал перед тем как завязывать какие-то перформансные штуки на нее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:06 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВерно ли Вас понимаю - так разве возможно? А почему нет? В чем проблема? Это до Вас и пытаемся донести.[/quot] Уже подтвердили - спасибо !!!! Вот бы еще примерчик в коде (или ссылку толковую статью ) В Oracle Help-е - там образно пишется, детализация хреноВАТА !!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:13 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_XПример (В КОДЕ) не подкините ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Важно: 1) Ресурс только один. Почему-то же он у вас параметром метода? 1) На каждую сессию будет загружаться ресурс в память сессии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.06.2016, 18:16 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Blazkowicz, 1. Партфицировал ресурс по условиям "=" Из одного файла сделал 30, скорость увеличилась раз в 10 ........ Относительно кода Вас понял - спасибо Вам большое за пример ! Буду внедрять....... Еще момент - следуя Вашему первоначальному совету (если все верно понял ....) Пытаюсь внедрить в jar библиотеку внут. таблицу. 1. в целом архитектура не нарушается - изнутри функция не имеет доступа к данным oracle. 2. будет организован доступ к некой внутренней таблице тот же функции. Отсюда вопрос - это надо внедрять в базу Oracle драйвера для работы с неким форматов (например DBF) - не могли бы посоветовать "быстрый" формат - может в 12 версии Oracle есть уже внедренные JDBC драйвера для "локальных" форматов. Будет ли выиграш в скорости при использовании такого driver-а ? Или распар-е текста все же лучше ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 16:56 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Blazkowicz1) Ресурс только один. Почему-то же он у вас параметром метода? Планировал использовать разные ресурсы, как в примере с партификацией ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:51 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
Blazkowicz1) На каждую сессию будет загружаться ресурс в память сессии. Мне это более чем подходит А как и как будет контролироваться этот процесс ? (java контролирует ?) Имею в виду следующее Запрос select A.F1,MyType(ссылка на java класс) F2 from LIST Результат F1 F2 'А' 100 'B' 200 'С' 300 Первая запись - инициализация массива (считывание из текста) Вторая запись - будет повторять считывания, или java умная и поймет, что ресурс уже обработан ? Третья запись - будет повторять считывания, или java умная и поймет, что ресурс уже обработан ? End выборки - массив в памяти ? Когда будет очистка потока ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 17:57 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
[quot Blazkowicz]HOME_XПример (В КОДЕ) не подкините ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. data.get(kind) - здесь не ясно, считывание по УНИКАЛЬНОМУ ключу ? у меня как такого нет ключа Есть группа (по которой провел партификацию) Есть поля в диапазоне F1-F2, T1-T2,D1-D2 Тип Групп F1 F2 T1 T2 D1 D2 RETURN АМОUNT POS_CASH > < > < > < 1 АМОUNT POS_CASH > < > < > < 2 АМОUNT POS_CASH > < > < > < 6 UNPAID POS_CASH > < > < > < 4 UNPAID POS_CASH > < > < > < 3 UNPAID POS_CASH > < > < > < 5 Чем я выиграю используя MAP c уникальным ключом, или в MAP-е можно локализовать поиск по ГРУППЕ записей ? Что вернет data.get(kind) - группу записей, по которой нужно пройтись циклом Прошу подтвердить этот момент СПАСИБО ЗА УЧАСТИЕ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:09 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
У тебя столько вопросов, что ответить на них не возможно. Больше половины можно прочитать в любой книжке по Java (static, map etc...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:12 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, Код: java 1. 2. 3. 4. 5. 6. 7. Т.е. такая матрица отбора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.07.2016, 18:13 |
|
||
|
Поиск по ресурсам
|
|||
|---|---|---|---|
|
#18+
HOME_X, Blazkowicz - спасибо за конкретику, получилось неплохо Пару моментов уточните пожалуйста 1. Что более эффективно вложить внутр. таблицу или отпарсить текст. ресурс 2. Суть расчета JAVA функции следующий передал 15 обязательных параметров вернул 20-25 параметров , в том числе 1 итоговых, остальные по требованию пользователя ИТОГОВЫЙ параметр, это результат расчета остальных по требованию . Заметил - если возвращаю только ИТОГОВЫЙ - работает 20-25 сек если + остальные по требованию, время на работу увеличивается. Можно ли предположить, что при возврате идет потеря времени на преобразование типов Oracle Java. oracle.sql.NUMBER -> Double и обратно Double -> oracle.sql.NUMBER Может имеет смысл заметить на более трив. тип, скажем NUMERIC(18,2) -> VARCHAR2 -> Java.Lang.String Прошу Вашего совета... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.07.2016, 19:45 |
|
||
|
|

start [/forum/topic.php?all=1&fid=59&tid=2123928]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 251ms |
| total: | 402ms |

| 0 / 0 |
