3 ms·
There is a huge difference between Ruby and Go, in terms of performance. I wonder if anyone has any experience with Python, considering that both are interprete
by g3rald 13y ago
There is a huge difference between Ruby and Go, in terms of performance. I wonder if anyone has any experience with Python, considering that both are interpreted programming languages.
- gtaylor 13y agoCPython is a bit faster than Ruby, but I'm not sure it'd be drastic enough of a difference for it to be much better in the author's case. Porting his code to PyPy would be very interesting, though.
- bvdbijl 13y agoIn my experience the speed decrease isn't worth it during competitions. I heard some talk about allowing Python at the International Olympiad in Informatics http://www.ioinformatics.org/index.shtml http://www.ioinformatics.org/index.shtml (in addition to Pascal and C(++)) but that's probably far off
- jdotjdot 13y agoI've has decent experiences with Python in Google Code Jam, with two exceptions. (1) Python can't handle large numbers, so the mere existence of huge integer inputs for the large prime number problem blew up my code since Python could not convert numbers that large. (2) Python is fine with math, but at a certain point of data accumulation, performance just plummets, no matter how good your algorithm is. Overall, though, I haven't had the experience the parent comment did. Either Python works beautifully or it literally just doesn't work, rather than take an hour. I treat it as a challenge, though, as it forces me to be smarter about my implementation.
- minopret 13y ago(1) In what sense do you mean "Python can't handle large numbers"? time python -c 'print (5**(5**5))*(3**(3**3))' \ | python -c 'import sys; print hex(int(sys.stdin.read()))' \ | wc -c 1829 real 0m0.091s user 0m0.149s sys 0m0.027s
- Luyt 13y agoPython can't handle large numbers Are you sure? Can you post a number of which you think Python can't handle? >>> int("983728338427643876432784367834678326438763278463276543675324675327867498274982787463273647235347652673547623548628347892374982374862384676235478632894790238409382984782768347683274983274964826487264826482264862384628648723643874268426482634826438742648276487264823764873627463252642654") 983728338427643876432784367834678326438763278463276543675324675327867498274982787463273647235347652673547623548628347892374982374862384676235478632894790238409382984782768347683274983274964826487264826482264862384628648723643874268426482634826438742648276487264823764873627463252642654L >>>
- omaranto 13y agoWhat do you mean Python cannot handle large numbers? It has an arbitrary precision integer data type built in: >>> 3**1000 132207081948080663689045525975214436596542203275214816767783138506080619639097776968725823559509545821006189118620803878014774228964841274390400117588618041128947815623617812548034440554705439703889581746536825491613622083028969185564040848989376093732421718463599386955167650189414350385648747165832010614366132173102768902855220001
- masklinn 13y ago> Python can't handle large numbers, so the mere existence of huge integer inputs for the large prime number problem blew up my code since Python could not convert numbers that large. Beg pardon? >>> 2**2**2**2**2 [snipped because HN does not allow 20k comments)
- Luyt 13y agoActually, Python is compiled (just like Java, C#, Ruby) to bytecode which is executed in a virtual machine. It is the dynamic nature of certain languages that can make them slower than languages that are statically typed.
- yyqux 13y agoAnd then the bytecode is interpreted. It's faster than interpreting the AST or source directly, but it's still pretty slow. Java compiles the bytecode on the fly. Back in older JVMs where Java interpreted the bytecode it was also slow as hell.