Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / производительность StringBuildera при реплейсах в ХТМЛ / 16 сообщений из 16, страница 1 из 1
20.09.2006, 12:21
    #33999320
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это StringBilderom. Кто нить имел опыт? Сильно тормозит? Я тут парсил 77 кэбэшный фаил на рабочем пс. тестил сресс тулом (200 юзеров) — 23 запроса в секунду тянет, но проц на 100 процентов. Слова типа: "$EXPERTPANELIST4_NAME". естественно надо по короче.

Естественно я думаю использовать такой метод с темплейтиками не более 5 кб. Но все равно интересно. Кто имел опыт, или есть ли опробованное решение?
...
Рейтинг: 0 / 0
20.09.2006, 12:56
    #33999479
Dmitry Uvarov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
например, читать посимвольно из входящего BufferedSteam, анализировать символ, если начало зарезервированной последовательности - читать до конца и прямо на ходу реплейсить, иначе просто добавлять в выходящий буфер. Имхо самый оптимальный способ будет, чем replace уже по загруженным даннымhttp://ln.com.ua/~openxs/articles/smart-questions-ru.html
...
Рейтинг: 0 / 0
22.09.2006, 08:43
    #34004883
Sinclair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, <Аноним>, Вы писали:

А>Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это 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
...
Рейтинг: 0 / 0
22.09.2006, 10:27
    #34005173
shepard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, 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:
...
Рейтинг: 0 / 0
24.09.2006, 22:16
    #34008505
Vercors
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Аноним, Вы писали:

А>Привет всем. Вот думаю использовать ХТМЛ темплейты и реплейсить в них резервированниый набор символов реальным контентом, и делать это StringBilderom. Кто нить имел опыт? Сильно тормозит? Я тут парсил 77 кэбэшный фаил на рабочем пс. тестил сресс тулом (200 юзеров) — 23 запроса в секунду тянет, но проц на 100 процентов. Слова типа: "$EXPERTPANELIST4_NAME". естественно надо по короче.

А>Естественно я думаю использовать такой метод с темплейтиками не более 5 кб. Но все равно интересно. Кто имел опыт, или есть ли опробованное решение?

вы бы написали для чего вам понадобилось использовать эти шаблоны???
xslt обычно пользуются.
...
Рейтинг: 0 / 0
25.09.2006, 10:39
    #34009001
Sinclair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, shepard, Вы писали:
S>вообще-то здесь будет как минимум 3 выделения памяти :shuffle:
Это откуда три-то? 1.1.4 stable rev. 510
...
Рейтинг: 0 / 0
25.09.2006, 11:11
    #34009115
shepard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, shepard, Вы писали:
S>>вообще-то здесь будет как минимум 3 выделения памяти :shuffle:
S>Это откуда три-то?

Раз: "Hello dear "
Два: ", you just won "
Три: " dollars";
:)
...
Рейтинг: 0 / 0
25.09.2006, 11:17
    #34009138
Lloyd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, shepard, Вы писали:

S>Раз: "Hello dear "
S>Два: ", you just won "
S>Три: " dollars";
S>:)

Курить про интернирование строк. ;)
...
Рейтинг: 0 / 0
25.09.2006, 11:21
    #34009147
shepard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, shepard, Вы писали:

S>Здравствуйте, Sinclair, Вы писали:

S>>Здравствуйте, shepard, Вы писали:
S>>>вообще-то здесь будет как минимум 3 выделения памяти :shuffle:
S>>Это откуда три-то?

S>Раз: "Hello dear "
S>Два: ", you just won "
S>Три: " dollars";
S>:)

Хотя возможно я ошибаюсь, и память под них выделится вообще при загрузке приложения
...
Рейтинг: 0 / 0
25.09.2006, 11:36
    #34009197
Sinclair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, shepard, Вы писали:

S>Раз: "Hello dear "
S>Два: ", you just won "
S>Три: " dollars";

Гм. Вообще-то вот как раз эта память будет выделена еще на этапе компиляции. Благодаря тому, что строки в .Net immutable, они будут лежать прямо в виде метаданных.
На самом деле, при выполнении этого кода будет сделано все же два выделения памяти: одно — под массив параметров метода string.Concat, а второе — под результат этой функции. 1.1.4 stable rev. 510
...
Рейтинг: 0 / 0
25.09.2006, 11:40
    #34009209
shepard
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Sinclair, Вы писали:

S>Гм. Вообще-то вот как раз эта память будет выделена еще на этапе компиляции. Благодаря тому, что строки в .Net immutable, они будут лежать прямо в виде метаданных.
S>На самом деле, при выполнении этого кода будет сделано все же два выделения памяти: одно — под массив параметров метода string.Concat, а второе — под результат этой функции.
Хм. Действительно! :) спасибо за подробное объяснение
...
Рейтинг: 0 / 0
25.09.2006, 11:40
    #34009210
C...R...a...S...H
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
2 shepard:
Да, память под строки выделятся при загрузке. Все строки висят в специальной хеш-таблице.----------------------------------------
Knowledge is P...O...w...E...R!
My site
...
Рейтинг: 0 / 0
16.10.2006, 10:32
    #34056332
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Sinclair, Вы писали:

S>Ну, у нас есть решение, но оно нифига не боттлнек, поэтому никто его отлизыванием не занимался. Зато есть мнение о том, как добиться максимальной производительности:

Спасибо за демонстрацию глубоких теоретических знаний фреймворка. А решение-то какое?

Спасибо
...
Рейтинг: 0 / 0
16.10.2006, 10:36
    #34056345
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Vercors, Вы писали:

V>вы бы написали для чего вам понадобилось использовать эти шаблоны???
V>xslt обычно пользуются.

Откровенно говоря xslt еще опыта нет юзать, возможно приедтся. Задача выводить всевозможные таблицы (таблички) с картинками, текстами и, возможно, контролами. Более точнее, юзаться будет в электронной комерции, (много языков). Самый понятный пример, список товаров...

Спасибо
...
Рейтинг: 0 / 0
17.10.2006, 00:04
    #34058748
Sinclair
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, <Аноним>, Вы писали:

А>Спасибо за демонстрацию глубоких теоретических знаний фреймворка. А решение-то какое?
Скомпилированные Regex-ы. Но я тебя по-честному предупреждаю, что описанное теоретическое решение будет быстрее. 1.1.4 stable rev. 510
...
Рейтинг: 0 / 0
17.10.2006, 17:43
    #34061220
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
производительность StringBuildera при реплейсах в ХТМЛ
Здравствуйте, Sinclair, Вы писали:

S>Скомпилированные Regex-ы. Но я тебя по-честному предупреждаю, что описанное теоретическое решение будет быстрее.

Спасибо, буду пробовть ресурсы и откомпиленные регексы :)
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / производительность StringBuildera при реплейсах в ХТМЛ / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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