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

​Элементарная задачка - XML, добавление

1904  1 2 3 4 5 все
Программист коренной житель29.09.21 16:29
NEW 29.09.21 16:29 
в ответ Murr 29.09.21 16:02
А если ЕСТЬ более простое решение, чем использование БД?

У каждого инструмента есть своя область применение. Безусловно, орехи можно колоть и гидравлическим прессом, но есть и более подходяшие инструменты ;)


Ты, кстати, допустил ту же ошибку, которую уже разбирали: выполняешь парсинг всего файла, об котором в задании НИЧЕГО не говорится.

Нет, просто если у тебя есть 10гиг конфигурации, то использовать XML будет очень странный человек :) И этого странного человека надо гнать ссаными тряпками.

#21 
Срыв покровов патриот29.09.21 16:32
29.09.21 16:32 
в ответ Программист 29.09.21 15:50
Нет. Если тебе приходит XML от условного Finanzamt'а и его надо передать в фирму рога и копыта, то это разовая операция и время ее исполнения не играет большой роли

то, что она разовая, это ты на ходу сочинил.

#22 
Murr патриот29.09.21 16:41
Murr
NEW 29.09.21 16:41 
в ответ Программист 29.09.21 16:29

есть и более подходяшие инструменты

-----

Вот и Я не понимаю - зачем ты тянешь гудравлический пресс (БД), туда где он совершенно не нужен.


если у тебя есть 10гиг конфигурации, то использовать XML будет очень странный человек

-----

Скучно.

Есть - задача. Известно, что есть решение. Известно что решение - простое.

Так нет - обсуждается то, что задача изначально неправильная.

А она не неправильная - она - целевая... спок

#23 
MrSanders коренной житель29.09.21 16:51
NEW 29.09.21 16:51 
в ответ Murr 29.09.21 16:10, Последний раз изменено 29.09.21 17:22 (MrSanders)
Насколько? Успеешь за 20 мил отсканить SAXom 10-20 гиг?

Конечно нет. За 20 мс. 10 ГБ даже с диска прочитать не успеешь. Даже с ССД. Мегабайт 60 максимум.

- понимаешь что не успеешь
- утверждается что решение есть
то надо как-то подумать над вопросом... смущ

А что тут думать? Очередной "муркин высер". Который в конечном итоге через 100500 уточняющих вопросов сведётся к какой-то ерунде не имеющей ни малейшего отношения к изначальной формулировке вопроса.


PS Вангую что окажется что оффсет от начала файла заранее известен (искать не надо) и используется отлично работающая с random access файлами файловая система. Отсюда и ограничение в 4 К.

Или нет, это же мурка... Тут надо думать максимально нелогично...Какой-нибудь индекс сейчас всплывёт.

#24 
Программист коренной житель29.09.21 17:07
NEW 29.09.21 17:07 
в ответ Murr 29.09.21 16:41

Хранить и давать доступ для чтения и записи к 10ГБ структурированной информации - это задача для БД.


Есть - задача. Известно, что есть решение.

Нет даже решения, чтобы прочитать 10ГБ за 20милисекунд. Можно конечно записывать эти фрагменты тупо в конец файла, но не факт, что 10ГБ можно будет открыть за 20 милисекунд.

#25 
alex445 свой человек29.09.21 17:37
NEW 29.09.21 17:37 
в ответ Murr 29.09.21 15:53

Как решать не знаю.

-----

Это Я вполне хорошо понимаю - задачка дана именно под то что ты не знаешь. улыб


слишком много неоговорено

-----

Уточняй. Что будет реально влиять на выполнение задачи - доопределим.

Честно, мне лень дальше по этой задачке думать. Извините.


Давайте уже своё решение, и желательно без копирайта. ))

#26 
alex445 свой человек29.09.21 17:48
NEW 29.09.21 17:48 
в ответ MrSanders 29.09.21 16:51, Последний раз изменено 29.09.21 17:55 (alex445)
PS Вангую что окажется что оффсет от начала файла заранее известен (искать не надо) и используется отлично работающая с random access файлами файловая система. Отсюда и ограничение в 4 К.

У него было про случайные вставки - т.е. никаких заранее известных оффсетов и меток. Т. е. по идее нужно сначала найти место в фале, куда вставлять (т.е. просканировать его), затем вставить. Чтобы просканировать, нужно открыть целиком или простримить. И если место для встаки окажнтся в конце файла, то в 20 мс никак не уложиться.

#27 
Murr патриот29.09.21 18:42
Murr
NEW 29.09.21 18:42 
в ответ MrSanders 29.09.21 16:51

Конечно нет.

-----

Ну тогда не трогаем SAX...


Вангую

-----

Уже ближе.

Товарищ, которому задачка адресована, уже предлагал какие-то метки в файл помещать.


Какой-нибудь индекс сейчас всплывёт.

-----

Нее, не всплывет.

Бо, решение совершенно элементарное.

Даже при 30 потоках...



оффсет от начала файла заранее известен (искать не надо)

-----

В том решении об котором ты подумал - это решение номер два - нет. спок

Просто есть еще более простой вариант при котором будет ответ - да.

Думаю, что подумав и посмотрев в доки ты его найдешь.

А когда найдешь, будь ласка, подтверди наличие решения и поделись ТОЛЬКО ссылкой на доку... Ок?



#28 
Murr патриот29.09.21 18:54
Murr
NEW 29.09.21 18:54 
в ответ Программист 29.09.21 17:07

давать доступ для чтения

-----

Где именно в задании есть это требование? безум


Нет даже решения, чтобы прочитать 10ГБ за 20милисекунд.

-----

Ну если ты ЭТО понимаешь, то зачем говоришь что надо читать?

Напряги извилины, перечитай задание, подумай, ковырни доки...

... и будем смеяться вместе над примитивностью решения. смущ

Только - тссс... не подсказывай...


но не факт, что 10ГБ можно будет открыть за 20 милисекунд

-----

А с каких пор размер файла начал влиять на время создания дескриптора доступа?

Ну если там шадов копи делается, маппинг или какой-нибудь индекс система строит - то да...

но просто открыть файл у меня это около 22 мс...

#29 
Murr патриот29.09.21 19:06
Murr
NEW 29.09.21 19:06 
в ответ alex445 29.09.21 17:37

Честно, мне лень дальше по этой задачке думать. Извините.

-----

Представляю рожу ПМ при таком подходе к выполнению работы... безум


Давайте уже своё решение

-----

Зачем?

Тебе - не нужно.

А остальные в состоянии его найти вполне самостоятельно...

#30 
Программист коренной житель30.09.21 08:49
NEW 30.09.21 08:49 
в ответ Murr 29.09.21 18:54
но просто открыть файл у меня это около 22 мс...

т.е. ты уже не укладываешься в собственные требования :) а ведь ты еще даже не начал писать и сохранять ;)

#31 
Murr патриот30.09.21 11:55
Murr
NEW 30.09.21 11:55 
в ответ Программист 30.09.21 08:49

Воткну ФАТ вместо НТФС и уложусь... улыб

#32 
Программист коренной житель30.09.21 12:48
NEW 30.09.21 12:48 
в ответ Murr 30.09.21 11:55
Воткну ФАТ вместо НТФС и уложусь...

Ну вот, пошли левые отмазки ;)

Все равно не уложишься ;) т.к. кроме открывания файла надо будет еще записать данные ;)

#33 
MrSanders коренной житель30.09.21 13:29
NEW 30.09.21 13:29 
в ответ Murr 30.09.21 11:55
Воткну ФАТ вместо НТФС и уложусь... улыб

Садись, два. В FAT32 максимальный размер файла 4 гига.

#34 
schizo коренной житель30.09.21 13:32
schizo
NEW 30.09.21 13:32 
в ответ MrSanders 30.09.21 13:29

http://xml.silmaril.ie/includes.html

Храни Вас Г-дь!
#35 
MrSanders коренной житель30.09.21 14:13
NEW 30.09.21 14:13 
в ответ schizo 30.09.21 13:32

Инклюдом сократим количество записываемой информации до одной строчки. Но всё равно надо сначала найти место, где его вставить (в 10 гигах), а потом записать изменение.

Или вы думаете Мурр собрал 10 гигов данных в 10.000 файликах по 1 мегу и все их заинклюдил в один большой из 10.000 инклюдов? Не, он может, конечно :)

#36 
Murr патриот30.09.21 19:29
Murr
NEW 30.09.21 19:29 
в ответ Программист 30.09.21 12:48

надо будет еще

------

Успею.

#37 
Murr патриот30.09.21 19:32
Murr
NEW 30.09.21 19:32 
в ответ MrSanders 30.09.21 13:29

максимальный размер файла 4 гига

-----

Хе-хе... аккурат на это - пофиг дважды.

Когда докопаешься до решения - поймешь. смущ

#38 
Murr патриот30.09.21 19:37
Murr
NEW 30.09.21 19:37 
в ответ MrSanders 30.09.21 14:13

надо сначала найти место

------

А что именно ты собираешься искать? смущ

#39 
Murr патриот01.10.21 04:19
Murr
NEW 01.10.21 04:19 
в ответ Murr 30.09.21 19:37

Для сомневающихся в возможностях решения задачи,

По результатам фактического теста (под отладчиком Студии) - 3883 милисекунд на 10.000 добавлений...

Время включает подготовку отдельного хмл для каждой записи - т.е. реальное время где-то 0.3 мс/добавление...

Все записи реально добавлены в файл. Записи - короткие - всего в файле 2.7Мб...


Ах, даа... старый лапоть - ССД, НТФС, И7, 8 Гб РАМ...

#40 
1 2 3 4 5 все