xml을 처리할때..

나빌레라의 이미지

xml을 처리할때,

python으로 하는것과 C (C++) 로 하는것과

속도차이가 많이 나나요?

물론 C 로하는것이 python으로 하는것보다 훨씬 빠르다는것은 알고 있지만,

아무래도 python을 사용하는것이 구현이 더 쉬울것같다는 생각에,

python을 고려하고 있습니다.

하지만 걸리는것이 그놈의 "속도" 네요...

C가 python 보다 xml처리에 있어서 속도가 빠르겠지만,

어느정도나 빠른가요?

정말 몸으로 느낄정도로 python이 엄청나게 느리다면,

아무래도 C로 생각을 해보아야 할것 같기도 하고요..

혹여 실제로 경험해보신분 계시면 답변해 주시면 고맙겠습니다.

see2002의 이미지

어떤 xml 파서를 쓰느냐에 따라 다를거 같습니다.

파이썬의 xml파서는 expat을 모듈화해서 기본패키지에 포함되어있는데,
C/C++에서도 같은 expat라이브러리를 사용해서 처리를 할거라면,
처리속도의 차이는 거의 안날거 같습니다.
어차피 파이썬에서도 xml파서는 c로 짜여진 모듈을 호출하는 방식이니까요.

하지만 C/C++로 Xerces-C++ 같은 xml의 표준스펙의 많은 부분을 지원하는 파서를 쓸거라면, expat을 사용하는 파이썬보다 오히려 느릴거라 생각되네요...(expat이 세계에서 가장빠른 xml파서라고들 하죠)

주관적인 생각입니다만, "속도"문제보다는, 원하는 기능 구현을 위해서 어떻게 xml처리를 할건지, 그래서 어떤 파서를 선택할건지가 더욱 중요할것 같습니다.
expat으로 처리할수 없는 기능을 다른 파서에서 제공을 한다던지....

아.. 그런데 파이썬용 Xerces xml 파서 래퍼 모듈이 있으면 좋겟네요...
Perl 용 래퍼는 있던데...

불량도ㅐㅈㅣ의 이미지

열혈강의 "Python"저자 이강성 교수가 광운대학교 교내 신문 글을 이렇게 올렸다죠?

Quote:
수많은 언어 중에서 왜 이 언어를 배워야 하는가? 이미 우리는 C나 자바 또는 다른 언어에 충분히 허덕이고 있는데 말이다. 그 이유는 간단하다. '쉽고 기능이 막강'하기 때문이다. 파이썬은 초보자나 프로그램 전문 개발가, 모두 적합한 흔하지 않은 언어중 하나이다. 초보자에게는 쉬워서 좋고, 전문가에게는 원하는 소프트웨어의 개발 기간을 단축시켜 준다.

실 예로, 두 명의 C 프로그래머가 1년동안 개발한 내용을 한 명의 파이썬 프로그래머가 2개월만에 마친 예가 있다. 개발 기간이 줄어들 뿐 아니라, C에 비하면 코드의 길이가 5∼10배나 짧아진다. 자바에 비해서는 3∼5배나 짧아진다.

이렇게 개발 기간이나 코드가 차이 날 수 있는 이유는 여러 가지가 있지만, 대표적인 이유로는 간단한 구문, 고수준의 자료형, 모듈과 객체의 높은 재사용성, 동적인 타입 결정 등이 있고 무엇보다도 잘 정의된 모듈을 제공한다. 또한 바이트 코드가 지원되는 인터프리터 언어로 컴파일 과정 없이 빠른 개발 작업이 이루어진다.
파이썬은 실행의 효율보다는 개발 기간 단축에 초점을 둔 언어이다. 개발 기간의 단축은 현대 정보화 사회에서 생존하기 위한 중요한 요소이다. 많은 벤처 기업들이 밤낮 없이 프로그램을 먼저 개발하기 위하여 노력하고 있다. 중요한 것은 개발된 프로그램의 실행 속도가 아니라, 우선 누가 먼저 개발 하는가이다.

먼저 개발하라! 그리고 성능을 개선하라!

아직 저두 파이썬 초보라 xml 부분까지는 보지 못했지만, 파이썬으로 해도 괜찮을것 같네요.

그리고 파이썬 모듈 상당수가 C로 구현해서 파이썬에 붙인게 많다고 하네요.

문근영 너무 귀여워~~

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.