Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.49 MB
Время: 0.005 c
4-1254841791
intlex
2009-10-06 19:09
2012.03.04
как определить владельца мьютекса (mutex owner)


2-1322202217
Dennis I. Komarov
2011-11-25 10:23
2012.03.04
D2010 string -> AnsiString


3-1272459836
mefodiy
2010-04-28 17:03
2012.03.04
Несоответствие между ADO и AnyDAC


15-1321342175
oleg1963lora
2011-11-15 11:29
2012.03.04
Анимация *.gif объектов


1-1287517747
christoforov
2010-10-19 23:49
2012.03.04
Прозрачная картинка




   Наверх