Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.03.04;
Скачать: CL | DM;

Вниз

Быстрое сохранение текста   Найти похожие ветки 

 
Rambo   (2011-11-23 13:27) [0]

Нужно сохранять около тысячи файлов на диск (текст из памяти). Пока использую TStrings.SaveToFile, и вот решил это дело ускорить.
Будет ли быстрее использовать нетипизированный подход или старые добрые assign-write?


 
clickmaker ©   (2011-11-23 13:39) [1]

Быстрее, чем CreateFile - WriteFile, не сделаешь


 
Ega23 ©   (2011-11-23 13:50) [2]


> и вот решил это дело ускорить.


От файловой операции никуда не уйдёшь.
Возможно, какая-нибудь дефрагментация диска даст прирост скорости бОльший, нежели попытки оптимизации кода.


 
Anatoly Podgoretsky ©   (2011-11-23 14:00) [3]

> Rambo  (23.11.2011 13:27:00)  [0]

Очень просто - измерь


 
han_malign   (2011-11-23 14:38) [4]


> Быстрее, чем CreateFile - WriteFile, не сделаешь

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


 
Jeer ©   (2011-11-23 14:46) [5]


> Быстрое сохранение текста


Не озвучены количественные и сравнительные показатели "быстрее".


 
Rambo   (2011-11-23 18:28) [6]

В общем решил использовать CreateFile WriteFile, вроде быстрее, последний вопрос: что будет если WriteFile передать параметр nNumberOfBytesToWrite=99999999999? Будут проблемы? Хочу сэкономить на подсчете символов.


 
Ega23 ©   (2011-11-23 21:17) [7]


> передать параметр nNumberOfBytesToWrite


Length(TStrings.Text) * SizeOf(Char)


 
Rambo   (2011-11-23 21:35) [8]

А без Length можно?


 
Ega23 ©   (2011-11-23 21:42) [9]


> А без Length можно?


А в чём проблема??? Религия не позволяет?


 
Rambo   (2011-11-23 21:45) [10]

Медленно. Гораздо быстрее вбить бесконечность


 
Омлет ©   (2011-11-23 21:48) [11]

> Ega23 ©   (23.11.11 21:42) [9]
> А в чём проблема???


Length - не проблема, а вот TStrings.Text... Посмотри исходники геттера )


 
Loginov Dmitry ©   (2011-11-23 22:01) [12]


> Нужно сохранять около тысячи файлов на диск (текст из памяти).
>  Пока использую TStrings.SaveToFile, и вот решил это дело
> ускорить.


Как часто "Нужно сохранять около тысячи файлов на диск"? Если это разовая операция, то можно 5 минут чай/кофе выпить.
Еже ли каждую минуту, то можно подумать об оптимизации. Как бы то ни было, запись 1000 файлов медленнее, чем запись одного, все-таки файловая система не бесплатно обходится. И почему столько файлов, с текстом, кто все это читать будет? Или это генерация какого-нибудь сайта с тысячами рандомных страничек?


 
Rambo   (2011-11-23 22:06) [13]


> Или это генерация какого-нибудь сайта с тысячами рандомных
> страничек?

Бинго!
Генерация выполнена за 38,907c. Сгенерировано 5277
В среднем на парсинг ушло: 0,685 мс
На сохранение файлов: 7,18 мс

Думаю покатит скорость.


 
Rambo   (2011-11-23 22:07) [14]

Всем спасибо!


 
Ega23 ©   (2011-11-23 22:13) [15]


> Length - не проблема, а вот TStrings.Text... Посмотри исходники
> геттера )


Ну нормальный геттер.

И вообще, неча заморачиваться, TStrings.SaveToStream(TFileStream)


 
KilkennyCat ©   (2011-11-24 02:57) [16]


> генерация какого-нибудь сайта с тысячами рандомных
> > страничек?

а зачем такое?


 
QAZ   (2011-11-24 11:43) [17]


> а зачем такое?

а чтоб ты через 10 страниц прошол, пока в итоге не получиш "Чтобы скачать файл пришли СМС..."


 
Loginov Dmitry ©   (2011-11-24 13:48) [18]


> а зачем такое?


http://ru.wikipedia.org/wiki/%D0%94%D0%BE%D1%80%D0%B2%D0%B5%D0%B9


 
KilkennyCat ©   (2011-11-24 23:44) [19]

я так и знал - автор из тех, кто создает помойку.



Страницы: 1 вся ветка

Текущий архив: 2012.03.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.009 c
2-1322472936
jacksotnik
2011-11-28 13:35
2012.03.04
Как показать картинку с Blob поля


11-1242734651
regnied
2009-05-19 16:04
2012.03.04
Поиск в глубину


2-1322051301
jacksotnik
2011-11-23 16:28
2012.03.04
Заполнение формы до её отображения


6-1252927401
Дмитрий Белькевич
2009-09-14 15:23
2012.03.04
Можно ли как-то узнать, какое приложение фильтрует порт?


15-1321121151
xayam
2011-11-12 22:05
2012.03.04
Нетбук на солнечной батарее