Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Имею следующий код: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Просто как бы копирую файл 111.txt, но почему-то такое "копирование" занимает очень много времени. Как вручную можно открывать, читать и писать в файл, но тратить меньшее время? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 19:34 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
fread() / fwrite() тебя спасут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 20:18 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Alex_kipпочему-то такое "копирование" занимает очень много времени. Потому что делается побайтово, да ещё и с преобразованием в процессе. Как уже сказали - использование крупных блоков спасёт ОРД. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2013, 20:28 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Alex_kip, Есть еще такие трюки в линуксе как vmsplice/sendfile В этом случае работа вообще ведется на ядерном уровне с минимальным оверхедом в пользовательском пространстве за счет техник zero-copy + DMA ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 12:43 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Alex_kipпочему-то такое "копирование" занимает очень много времени. А какого объёма файлы ? Dimitry SibiryakovПотому что делается побайтово, да ещё и с преобразованием в процессе. Как уже сказали - использование крупных блоков спасёт ОРД. Как бы операционка и RTL всё равно буферизируют файлы, поэтому тут проблема не в самом побайтовом копировании скорее, а в накладных расходах на вызовы функций fgetc fprintf на каждый байт файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 13:23 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Westtrd, я под win пишу программы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:45 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Моя основная идея - написать какой-нибудь архиватор или компрессор, что само по себе предполагает посимвольный перебор. Но посимвольно оказывается сильно долго( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:48 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Отнюдь не предполагает. Скорее наоборот. Но даже и если бы, посимвольный перебор не означает посимвольное чтение. Считал пару мегабайт в память, переработал по символу, записал результат. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:51 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Alex_kipWesttrd, я под win пишу программы DMA присуствует в любом современном компьютере независимо от установленной на него ОС. Только мапьте на адрес в памяти выравнянный по границе кластера ФС по другому ДМА не сможет попасть в адреса , и все пойдет через промежуточный буфер (КЕШ ФС). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:54 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Из файла в файл копировать командой memcpy . Приблизительно так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.03.2013, 16:56 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
ДохтаР, Ну, у каждого свой выбор, пишите и далее под винду :) memcpy в файловых операциях есть нонсенс :) И да, DMA надо уметь приготавливать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 00:50 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovОтнюдь не предполагает. Скорее наоборот. Но даже и если бы, посимвольный перебор не означает посимвольное чтение. Считал пару мегабайт в память, переработал по символу, записал результат. Основной оверхед у ТС - сисколлы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 00:52 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, мне для статистики нужно будет его сначала побайтово считать я так понимаю, чтобы посчитать кол-во вхождений каждого символа ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 05:56 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Alex_kipDimitry Sibiryakov, мне для статистики нужно будет его сначала побайтово считать я так понимаю, чтобы посчитать кол-во вхождений каждого символа Да никто не читает побайтово. Статистику можно и в буфере уже посчитать. Если хочешь все же побайтово, то все верно твой код работатет - работает медленно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 10:23 |
|
||
|
Чтение и запись
|
|||
|---|---|---|---|
|
#18+
Господа, что-то мне кажется, какой бы ни был оверхед на вызовы функций при посимвольном I/O, при буферизированном I/O (а функции f* как раз буферизируют) он не должен быть заметен на фоне задержек на непосредственно дисковых операциях. Может просто надо вместо fprintf применить fputc? У fprintf, выводящей всего один символ в цикле, намного больше оверхед чем у fputc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.03.2013, 17:01 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38196228&tid=2020349]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
66ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 169ms |

| 0 / 0 |
