Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
всем спасибо за помощь! сейчас мой последний вариант работает менее 1 сек. по крайней мере посимвольное чтение Код: plaintext 1. 2. 3. 4. 5. 6. вообще моментально происходит. еще задам пару глупых вопросов: 1) почему переменная типа char* автоматически считается массивом (т.е. обращаться можно поэлементно []) ? 2) почему сразу после объявления char ch она инициализируется символом M. вернее она не инициализирована, однако Watch показыает 'M' по п.1 ткните где почитать доступно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 12:25 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
novexelfволодька трынькинnovexelf, к сожалению, это очень много, потому что во-первых, этот код даже БЕЗ парсинга строки, во-вторых, реально будет работать на машине намного слабее моей -(1.2 GHz atom, 1GB ram) и время возрастет в разы сразу! говорить о том много это или нет, можно только если ввести вторую величину, с которой сравнивать. почему 80 секунд это много? я так понимаю, что весь вопрос в том, что другое приложение делает это быстрее. т.е. вы сами себе поставили ограничение - реализовать со скоростью, сопоставимой с ... даже если парсинг увеличит время обработки до 3-5 минут, в чем тут проблема? вы же не раскрываете тайный смыл, например, если нужно будет один раз в день обрабатывать файл вашим приложением, то особой проблемы в том будет ли это выполнятся 5-7 секунд или 5-7 минут нет, просто сотрудник нальет себе чашку бодрящего ... другое дело, если технологический процесс выдает файлы 1 раз в минуту и их нужно успевать обрабатывать, явно будет очередь, которая будет постоянно расти. как уже сказали - реализуйте для начала парсинг, а уж потом оптимизируйте. по крайней мере теперь я буду реализовывать парсинг и уже именно его оптимизировать, добиваясь 7 секунд)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 12:27 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинnovexelf, к сожалению, это очень много, потому что во-первых, этот код даже БЕЗ парсинга строки, во-вторых, реально будет работать на машине намного слабее моей -(1.2 GHz atom, 1GB ram) и время возрастет в разы сразу! чего ты вообще сунулся на эту задачу? Не понимаешь же ничерта... Не знаешь ничего... Сначала учиться надо, потом работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 12:50 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
MasterZivСначала учиться надо, потом работать. Ну дык топикстартер и учится на реальной задаче ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 12:57 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинвсем спасибо за помощь! сейчас мой последний вариант работает менее 1 сек. по крайней мере посимвольное чтение Код: plaintext 1. 2. 3. 4. 5. 6. вообще моментально происходит. еще задам пару глупых вопросов: 1) почему переменная типа char* автоматически считается массивом (т.е. обращаться можно поэлементно []) ? 2) почему сразу после объявления char ch она инициализируется символом M. вернее она не инициализирована, однако Watch показыает 'M' по п.1 ткните где почитать доступно с такими знаниями С/С++ с парсингом наверное будет тяжко ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 12:58 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
ИзопропилMasterZivСначала учиться надо, потом работать. Ну дык топикстартер и учится на реальной задаче ну да форум вот читает :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:01 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
MasterZivволодька трынькинnovexelf, к сожалению, это очень много, потому что во-первых, этот код даже БЕЗ парсинга строки, во-вторых, реально будет работать на машине намного слабее моей -(1.2 GHz atom, 1GB ram) и время возрастет в разы сразу! чего ты вообще сунулся на эту задачу? Не понимаешь же ничерта... Не знаешь ничего... Сначала учиться надо, потом работать. мне кажется именно так и происходит процесс обучения, не? вы учились исключительно читая книжки??? ок, ребят. предыстория такова проект пишется на питоне. и на данный момент чтение как и парсинг файла я реализовал именно на нем (время обработки файла 100 МБ около 3 мин). потом посмотрев, что есть сторонний софт, который аналогичные действия выполняет за считанные секунды, решил приблизиться к этому времени. теперь процедуру парсинга напишу на с++, засуну в DLL и подключу к питон-приложению (через ctypes) как-то так ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:07 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинMasterZivпропущено... чего ты вообще сунулся на эту задачу? Не понимаешь же ничерта... Не знаешь ничего... Сначала учиться надо, потом работать. мне кажется именно так и происходит процесс обучения, не? вы учились исключительно читая книжки??? ок, ребят. предыстория такова проект пишется на питоне. и на данный момент чтение как и парсинг файла я реализовал именно на нем (время обработки файла 100 МБ около 3 мин). потом посмотрев, что есть сторонний софт, который аналогичные действия выполняет за считанные секунды, решил приблизиться к этому времени. теперь процедуру парсинга напишу на с++, засуну в DLL и подключу к питон-приложению (через ctypes) как-то так ну если не знаешь азов языка, то обычно их учат, а после практикуются в их применении ... обычно вся мощь языка заключена в его хорошем знании, которого в данном случае у вас нет, а поэтому может случится так, что исполнение на С/С++ будет еще медленнее, чем все остальные. все запутанней и запутанней, если есть сторонний софт, то зачем создавать новый? если уже есть своя разработка, пусть и уступающая в скорости, то зачем ее переписывать? скорость решающий фактор? зачем вообще тратить время ... пока что вы пишите на Сях :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:23 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинMasterZivпропущено... чего ты вообще сунулся на эту задачу? Не понимаешь же ничерта... Не знаешь ничего... Сначала учиться надо, потом работать. мне кажется именно так и происходит процесс обучения, не? вы учились исключительно читая книжки??? ок, ребят. предыстория такова проект пишется на питоне. и на данный момент чтение как и парсинг файла я реализовал именно на нем (время обработки файла 100 МБ около 3 мин). потом посмотрев, что есть сторонний софт, который аналогичные действия выполняет за считанные секунды, решил приблизиться к этому времени. теперь процедуру парсинга напишу на с++, засуну в DLL и подключу к питон-приложению (через ctypes) как-то так А почему ты не пошёл в форум по Питону и не попробовал соптимизировать то что было написано? Почему ринулся сразу кодить на 2-х технологиях (учитывая риски того что ты еще и плохо знаешь С++ и не учёл накладные расходы на переходник между двумя технологиями) а просто не проанализировал где у тебя боттлнек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:36 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
ну если не знаешь азов языка, то обычно их учат, а после практикуются в их применении ... у меня все параллельно идет и теория и практика)) ничего запутанного, есть сторонний софт который делает много чего полезного, работает только под виндой, и проект закрытый. а нам нужно лишь пара функции из того что делает софтина (причем не совсем таких же, а очень похожих), причем работать должно как под виндой, так и под линуксом. ну все равно что мс офис и блокнот (либо gedit) в общем, поверьте мне, смысл в этом есть и время тратить стоит :) ЗЫ чувствую после слов о кроссплатформенности опять полетят "да куда он лезет!", "он же ничерта не знает!", а MasterZiv ?)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:36 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
mayton, я не ринулся сразу на 2 технологии. я к этому постепенно пришел. сначала на питоне реализовал это 4-мя различными способами. и подумал, что быстрее уже на нем невозможно. все-таки интерпретатор... шерстил в основном аглицкие форумы а вот насчет передачи данных в питон - вы правы, скорее всего это и будет ботлнеком. посмотрим ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:44 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинmayton, я не ринулся сразу на 2 технологии. я к этому постепенно пришел. сначала на питоне реализовал это 4-мя различными способами. и подумал, что быстрее уже на нем невозможно. все-таки интерпретатор... шерстил в основном аглицкие форумы а вот насчет передачи данных в питон - вы правы, скорее всего это и будет ботлнеком. посмотрим Можешь приаттачить в форум эти версии исходников? (Я думаю коллеги модераторы будут не против если это будет сравнение С++ и Pytnon). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:50 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
Я не разбираюсь в Питоне но вот нашёл ссылку в которой приводят советы по Performance: https://wiki.python.org/moin/PythonSpeed/PerformanceTips Вы пробовали имплеменить эти советы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 13:58 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
mayton, да конечно Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. может кому полезно будет да, спасибо, этот документ читал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 14:19 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
а так же сейчас реализовал чисто через вызовы Си ф-ий Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 14:22 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинмне кажется именно так и происходит процесс обучения, не? Неа. володька трынькинвы учились исключительно читая книжки??? Да. Извини, но с такими вопросами типа "как из буфера типа char* читать посимвольно? " ты далеко не напарсишь. володька трынькинпроект пишется на питоне. и на данный момент чтение как и парсинг файла я реализовал именно на нем (время обработки файла 100 МБ около 3 мин). потом посмотрев, что есть сторонний софт, который аналогичные действия выполняет за считанные секунды, решил приблизиться к этому времени. теперь процедуру парсинга напишу на с++, засуну в DLL и подключу к питон-приложению (через ctypes) У тебя как у многих дурацкое заблуждение, что на С/С++ программы автоматом будут работать быстрее. Это не так. В частности, чтение файла в буфер на питоне не только такое же по скорости, но и ровно то же самое по реализации -- используется та же библиотека CRT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 15:21 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
MasterZiv, да, у меня получилось чтение в буфер такое же, а вот итеративные операции по строкам и по символам намного медленнее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 15:53 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькин, а почему ты не попробовал как пишут здесь http://docs.python.org/2/tutorial/inputoutput.html Код: python 1. 2. 3. 4. 5. или как здесь? http://effbot.org/zone/readline-performance.htm Код: python 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Пока не рассказывай про посимвольное чтение. Ведь ты символы в приведённых фрагментах кода никак не использовал кроме как тупо вёл учёт количества букв. А это можно сделать и через контейнер строки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 16:29 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинMasterZiv, да, у меня получилось чтение в буфер такое же, а вот итеративные операции по строкам и по символам намного медленнее Я уверен, что можно было бы найти решение и на питоне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 16:46 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинMasterZiv, да, у меня получилось чтение в буфер такое же, а вот итеративные операции по строкам и по символам намного медленнее в сях все на указателях и функциях завязано. скорость как раз достигается за счет умелого использования указателей. ну а по скольку операторов очень ограниченное число, то нет ни строк ни операторов для работы со строками, и соответственно нужно знать еще кучу функции для работы, например, со строками, либо сторонних библиотек. в результате получается, что для успеха нужен большой багаж знаний и если его нет парсинг может превратится в ужас. ЗюЫю в универе делали учебный компилятор, простой при простой, вот те кто делал на паскале имели меньше проблем, чем те которые делали на сях, за счет наличия строк, операторов конкатенации и прочих плюшек паскаля, у меня тогда знания были в зачатке и практики мало, поэтому я намучался, но это была учебная задача, там как раз и нужно было намучаться :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 16:56 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
О каком парсинге тут идёт речь - еще не ясно? Может автору просто надо СSV-файл побить на строки и поля в загрузить в БД. Здесь достаточно тривиально. Если грамматика чуть сложнее то нужно вводить некий "автомат" который имеет в процессе парсинга своё "состояние" и в зависимости от текущего символа принимает разные решения. Это тяжёлая артиллерия, и здесь на голых сях и на питонах обычно не пишут а используют различные генераторы парсеров которых щас много и с либеральными лицезиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:39 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
mayton, эти два варианта есть в моих примерах! символы я буду использовать уже в парсинге ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:42 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
володька трынькинсимволы я буду использовать уже в парсинге Гораздо проще там использовать регэкспы. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:45 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
novexelf, делаю нечто похожее, только не компилятор, а интерпретатор. на первоначальном этапе нужно разбить файл на лексемы. для этого и читаю посимвольно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:51 |
|
||
|
парсинг текстового файла
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakovволодька трынькинсимволы я буду использовать уже в парсинге Гораздо проще там использовать регэкспы. да, возможно стоит попробовать на регулярках. здесть уже не надо будет читать посимвольно. но дело в том что сам алгоритм разбора строки уже реализован на питоне. его нужно только перенести на си. проблем вроде быть не должно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2013, 17:53 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38423386&tid=2019923]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 280ms |
| total: | 445ms |

| 0 / 0 |
