Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это StringBilderom. Кто нить имел опыт? Сильно тормозит? Я тут парсил 77 кэбэшный фаил на рабочем пс. тестил сресс тулом (200 юзеров) — 23 запроса в секунду тянет, но проц на 100 процентов. Слова типа: "$EXPERTPANELIST4_NAME". естественно надо по короче. Естественно я думаю использовать такой метод с темплейтиками не более 5 кб. Но все равно интересно. Кто имел опыт, или есть ли опробованное решение? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 12:21 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
например, читать посимвольно из входящего BufferedSteam, анализировать символ, если начало зарезервированной последовательности - читать до конца и прямо на ходу реплейсить, иначе просто добавлять в выходящий буфер. Имхо самый оптимальный способ будет, чем replace уже по загруженным даннымhttp://ln.com.ua/~openxs/articles/smart-questions-ru.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2006, 12:56 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это StringBilderom. Кто нить имел опыт? Сильно тормозит? Я тут парсил 77 кэбэшный фаил на рабочем пс. тестил сресс тулом (200 юзеров) — 23 запроса в секунду тянет, но проц на 100 процентов. Слова типа: "$EXPERTPANELIST4_NAME". естественно надо по короче. А>Естественно я думаю использовать такой метод с темплейтиками не более 5 кб. Но все равно интересно. Кто имел опыт, или есть ли опробованное решение? Ну, у нас есть решение, но оно нифига не боттлнек, поэтому никто его отлизыванием не занимался. Зато есть мнение о том, как добиться максимальной производительности: 1. Делай весь парсинг заранее. Ну вот например, у тебя текой шаблон: "Hello dear $FULLNAME$, you just won $AMOUNT$ dollars". Тебе надо заменить $FULLNAME$ и $AMOUNT$ фактическими значениями. Быстрее всего это делает вот такая функция: public static string HelloDear(string name, string amount) { return "Hello dear " + name + ", you just won " + amount + " dollars"; } Все. Быстрее него уже ничего нет. Здесь будет ровно одно выделение памяти под результат и несколько обращений к сильно оптимизированному низкоуровневому коду копирования строки. Поэтому максимальной производительности можно добиться, сгенерировав для каждого шаблона вот такую функцию. Освой Reflection.Emit — и счастье непременно наступит. 2. Быстрее чем выделять память один раз — только не выделять память вообще. Поэтому можно попробовать кэшировать результаты замены, если подстановка одних и тех же параметров происходит достаточно многократно. 3. Можно применять частичное кэширование — к примеру, если выигрывают в основном по 10 и 50 долларов, то специализированные версии функций сэкономят еще пару тактов: public static string HelloDearYouWon10(string name); { return "Hello dear " + name + ", you just won " + "10"+ " dollars"; } public static string HelloDearYouWon50(string name); { return "Hello dear " + name + ", you just won " + "50"+ " dollars"; } 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 08:43 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Быстрее всего это делает вот такая функция: S> S>public static string HelloDear(string name, string amount) S>{ S> return "Hello dear " + name + ", you just won " + amount + " dollars"; S>} S> S>Все. Быстрее него уже ничего нет. Здесь будет ровно одно выделение памяти под результат и несколько обращений к сильно оптимизированному низкоуровневому коду копирования строки. вообще-то здесь будет как минимум 3 выделения памяти :shuffle: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2006, 10:27 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Аноним, Вы писали: А>Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это StringBilderom. Кто нить имел опыт? Сильно тормозит? Я тут парсил 77 кэбэшный фаил на рабочем пс. тестил сресс тулом (200 юзеров) — 23 запроса в секунду тянет, но проц на 100 процентов. Слова типа: "$EXPERTPANELIST4_NAME". естественно надо по короче. А>Естественно я думаю использовать такой метод с темплейтиками не более 5 кб. Но все равно интересно. Кто имел опыт, или есть ли опробованное решение? вы бы написали для чего вам понадобилось использовать эти шаблоны??? xslt обычно пользуются. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2006, 22:16 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, shepard, Вы писали: S>вообще-то здесь будет как минимум 3 выделения памяти :shuffle: Это откуда три-то? 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 10:39 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Здравствуйте, shepard, Вы писали: S>>вообще-то здесь будет как минимум 3 выделения памяти :shuffle: S>Это откуда три-то? Раз: "Hello dear " Два: ", you just won " Три: " dollars"; :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:11 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, shepard, Вы писали: S>Раз: "Hello dear " S>Два: ", you just won " S>Три: " dollars"; S>:) Курить про интернирование строк. ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:17 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, shepard, Вы писали: S>Здравствуйте, Sinclair, Вы писали: S>>Здравствуйте, shepard, Вы писали: S>>>вообще-то здесь будет как минимум 3 выделения памяти :shuffle: S>>Это откуда три-то? S>Раз: "Hello dear " S>Два: ", you just won " S>Три: " dollars"; S>:) Хотя возможно я ошибаюсь, и память под них выделится вообще при загрузке приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:21 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, shepard, Вы писали: S>Раз: "Hello dear " S>Два: ", you just won " S>Три: " dollars"; Гм. Вообще-то вот как раз эта память будет выделена еще на этапе компиляции. Благодаря тому, что строки в .Net immutable, они будут лежать прямо в виде метаданных. На самом деле, при выполнении этого кода будет сделано все же два выделения памяти: одно — под массив параметров метода string.Concat, а второе — под результат этой функции. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:36 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Гм. Вообще-то вот как раз эта память будет выделена еще на этапе компиляции. Благодаря тому, что строки в .Net immutable, они будут лежать прямо в виде метаданных. S>На самом деле, при выполнении этого кода будет сделано все же два выделения памяти: одно — под массив параметров метода string.Concat, а второе — под результат этой функции. Хм. Действительно! :) спасибо за подробное объяснение ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:40 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
2 shepard: Да, память под строки выделятся при загрузке. Все строки висят в специальной хеш-таблице.---------------------------------------- Knowledge is P...O...w...E...R! My site ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2006, 11:40 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Ну, у нас есть решение, но оно нифига не боттлнек, поэтому никто его отлизыванием не занимался. Зато есть мнение о том, как добиться максимальной производительности: Спасибо за демонстрацию глубоких теоретических знаний фреймворка. А решение-то какое? Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 10:32 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Vercors, Вы писали: V>вы бы написали для чего вам понадобилось использовать эти шаблоны??? V>xslt обычно пользуются. Откровенно говоря xslt еще опыта нет юзать, возможно приедтся. Задача выводить всевозможные таблицы (таблички) с картинками, текстами и, возможно, контролами. Более точнее, юзаться будет в электронной комерции, (много языков). Самый понятный пример, список товаров... Спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.10.2006, 10:36 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, <Аноним>, Вы писали: А>Спасибо за демонстрацию глубоких теоретических знаний фреймворка. А решение-то какое? Скомпилированные Regex-ы. Но я тебя по-честному предупреждаю, что описанное теоретическое решение будет быстрее. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 00:04 |
|
||
|
производительность StringBuildera при реплейсах в ХТМЛ
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Sinclair, Вы писали: S>Скомпилированные Regex-ы. Но я тебя по-честному предупреждаю, что описанное теоретическое решение будет быстрее. Спасибо, буду пробовть ресурсы и откомпиленные регексы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.10.2006, 17:43 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34056345&tid=1388513]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
63ms |
get tp. blocked users: |
2ms |
| others: | 269ms |
| total: | 434ms |

| 0 / 0 |
