|
Тема |
Re: .Net 2003 c++ оптимизации [re: lamer] |
|
Автор |
шeф нa Coди Дeвня (full optional) |
|
Публикувано | 10.09.03 16:00 |
|
|
по принцип не би трябвало да е по-бавно ако е unmanaged code ... ама ще поразпитам тук там да видя дали няма да ми кажат нещо полезно ... аз съм писал много на С++ ама откакто минах на .нет съм на С# и не знам как стои въпроса с .нет С++ ...
исках да те питам нещо за компресията на данни, по-точно на текст, значи имам огромни текст файлове (GB и нагоре) които се състоят от отделни изречения, примерно като роман. аз трябва да го компресирам този файл, но изречение по изречение, защото трябва да го чета изречение по изречение, примерно трябва да прочета изречение 3423. затова не мога да компресирам целия файл щото не ми се ще за всяко изречение което трябва да прочета да го разкомпресирам и компресирам. значи аз си имам индекси към всяко изречение и мога да го намера чрез random access. та от известно време се чудя каква компресия да ползвам. идеята е че компресиращи алгоритми които работят на принципа на повторенията на патерни или блокове (като зипа примерно) не ми вършат работа щото:
1. в едно изречение я има я няма повторения
2. те правят dictionary което в моя случай ми увеличава размера вместо да го намалява
после си мислех за Huffman codes щото той работи на бинарно ниво и се оказва малко по-ефективен, ама пак си прави таблица, макар и по-малка
накрая се спрях на LZSS, който не прави никакви допълнителни структури ами пази данните в ring bufffer, не е кой знае кво ама компресира горе-долу ...
ти как мислиш, кой алгоритъм ще е най-подходящ за този случай? макар че то има една дузина алгоритми за компресиране на текст и всичко останало са тяхни модификации ...
XM TurboCT .. where comfort meets power
|
| |
|
|
|