| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Общие вопросы по .NET и C# > Оптимизация программы |
| Автор: Silent 17.8.2011, 15:09 | ||
| Добрый день! Есть задача вывода в стандартный поток 10^6 символов за минимально возможное время. Мое решение:
Время выполнения - 0.093 секунды, а занимаемая память - 3 852 КБ. Как оптимизировать данный код в сторону ускорения быстродействия/уменьшения занимаемой памяти? |
| Автор: jonie 17.8.2011, 18:35 |
| вы уже прошлись профайлером и определили горячие точки, не так ли? |
| Автор: Silent 18.8.2011, 09:36 | ||
нет, профайлером я не проходил, можно считать меня полным нубом в этой области - C#-знаний у меня практически нет. к тому же, как мне в данной ситуации поможет профайлер? Результатом должен быть мегабайтный блок данных в стандартном потоке вывода, и ключевые моменты C#, которые мне бы хотелось узнать - это есть ли альтернативы используемым методам? Например, под массив buf уходит 2Мб (юникод), Console.Write() принимает только массив char'ов, и выводит с преобразованием к текущей кодировке операционной системы. А мне бы буфер в 1Мб (который рассматривался бы просто как массив байт) скинуть чем-нибудь побыстрее Console.Write(); Позволю привести код в С++:
и размер буфера 1Мб, и скидываем "как есть" |