Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

А как сейчас с работой?

28.09.21 18:31
Re: А как сейчас с работой?
 
alex445 свой человек
в ответ Murr 28.09.21 18:20, Последний раз изменено 28.09.21 18:32 (alex445)
Элементарная задачка.
Требуется - добавлять какие-то фрагменты в ХМЛ файл.
Для простоты - пусть они будут одинаковые по структуре ХМЛ.
Вроде как все работает, но... медленно. И чем дальше - тем медленнее.
Твоя работа - вместо 10 минут на добавление одного фрагмента сделать... хммм... 100 милисекунд... хотя, пожалуй, много.. 20-ти хватит...
Да, пока не забыл - работа с файлом остается. Т.е. если рубильник смайнают - все должно работать без потерь...

И, заметь, никаких ограничений не ставится - хочешь стандартные либы - будь ласка, хочешь штаны через голову - милости просим... только выдай 20 милисек на добавление... и это... на доработку/фих тебе пара часов,

Смотря в какое место добавлять. Может, там удобно поставить метку и просто открыть файл как текстовый, без построения DOM в памяти, или даже стримить его кусками, пока не найдёшь метку, затем добавить что надо после метки тоже кусок текста и сохранить файл. Думаю, гигабайтный может быть обработан за секунды. Насчёт 100мс не знаю - у вас файл же на диске лежит, а свойства вашего хранилища неизвестны. Может, там убитые и вусмерть фрагментированные HDD.


Есть ещё такая штука StAX - Wikipedia или SAX, но вот тут пишут, что для модификации XML лучше подходит всё же построение DOM.


Вообще, это какой-то бред - хранить многогиговые XML. Это формат с избыточными данными - одни закрывающие теги с повторением названия открывающего чего стоят. Сжать всё это дерьмо или сразу использовать формат без дублирования. Но сжатое потом разжать надо и снова сжать - лишнии операции. Может, проблема в генераторе таких XML и то, куда и как их хранят? А то кто-то наговнокодил, а вас потом подрывают вдруг и неожиданно провести блицкриг врукопашную против танков (15 минут на многогиговый XML)?

 

Перейти на