Считывание из большого файла - насколько велика нагрузка?

Статус
В этой теме нельзя размещать новые ответы.

vovanium

Новичок
какая нафиг привычка?
дергая случайный фрагмент файла как предлагает фaнат делает выборку неравномерной, да если дергать файл раз в день это не очень важно, но при сокражении интервала будет важно.
что касается скорости то как бы не факт, т.к. в случае выбора случайного фрагмента нужно еще над фрагментом действия производить чтобы вырезать конкретную строку, плюс нужно следить чтобы не появились строки длиннее тех же 10 КБ. Поддерживать индекс файл особо не нужно, просто при добавлении строки в основной файл, добавляешь 4 байта в индексный файл и всё.
 

dimagolov

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

С.

Продвинутый новичок
vovanium, я тебе раскрою тайну, которую масоны от ПХП всячески замалчивают. Случайные числа в компьютере на самом деле псевдослучайные. То есть даже в твоем варианте выборка может оказаться неравномерной.

Тут без дополнительного железа не обойтись. Я слышал есть платы с радиоактивным элементом, они де выдают настоящее случайное число.

-~{}~ 28.07.09 20:32:

Автор оригинала: ***** зачем влево-то читать?
Я не против твоей реализации, я лишь идею предложил. Только все равно, выбрав позицию, надо отступить назад на 5К и считать 10К. Иначе первая строка явно окажется обделенной вниманием и с последней будут проблемы.
 

vovanium

Новичок
на практике они запросто будут весьма близки к среднему
Во-первых не факт, а во-вторых если они весьма близки к среднему, то можно сделать строки фиксированной длины, тогда будет быстрее.

Ради интереса провел эксперимент, нагенерил файл 99 МБ, 70+ тысяч записей.
Вариант с индексом выбирает 10 000 случайных строк, за 0.17 сек, вариант в котором выбирается 10 КБ, делается explode, а потом выбирается случайная строка выполняется 0.33 сек.

-~{}~ 28.07.09 19:49:

С.
Случайные числа в компьютере на самом деле псевдослучайные
Они то псевдослучайные, но неравномерность в пределах 1-2 процента, в твоем случае вероятность напрямую зависит от длины строки, и разница может отличаться в разы.
Я когда-то давно по похожей схеме делал баннерку, т.е. грубо говоря есть 100 элементов с номером баннера, и количество элементов с одним номером соответствовало приоритету баннера в процентах ;)
 

Фанат

oncle terrible
Команда форума
жаль. еще одного придется записать в невменяемые.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху