Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2012.03.04;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.48 MB
Время: 0.003 c
2-1321906467
lars
2011-11-22 00:14
2012.03.04
String Grid Подскажите, пожалуйста, как получить номера выбранных


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


15-1321250855
Dimka Maslov
2011-11-14 10:07
2012.03.04
Релятивистский диск


15-1321389003
Юрий
2011-11-16 00:30
2012.03.04
С днем рождения ! 16 ноября 2011 среда


2-1322040469
Rambo
2011-11-23 13:27
2012.03.04
Быстрое сохранение текста





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский