From: Samuele P. <ped...@op...> - 2008-01-01 14:43:28
|
Hi, now that Jython supports properly new style classes etc it can run the suite of microbenchmarks that have been and are used by the PyPy project: http://codespeak.net/svn/pypy/dist/pypy/translator/microbench/ I suppose people here may be interested even if performance is not the only or main goal right now. These are the results of a run comparing python2.5 and jython2.2.1 on a 1st gen macbook pro (intel core duo, not core duo 2) still using Java 5 for Jython: You run microbench.py with a list of python interpreters, the first is used as reference to produce relative results, for jython you need a larger heap than the default one (I know that -Xmx512m works): exe: /Users/pedronis/sw/Python/2.5/Python.framework/Versions/2.5/bin/python exe: /Users/pedronis/Software/jython2.2.1/jython 0.86x slower on test_exception.test_try_except_finally() 1.01x slower on test_count1.test_loop_other_count() 1.02x slower on test_exception.test_try_except_else() 1.03x slower on test_exception.test_try_except() 1.03x slower on test_unicode.test_bad_case_python2_5() 1.09x slower on test_exception.test_except_multiple_builtin_exception() 1.10x slower on test_exception.test_except_multiple_user_exception() 1.14x slower on test_count1.test_call_nested_function_other_count() 1.14x slower on test_exception.test_reraise() 1.17x slower on test_list.test_list_setitem() 1.21x slower on test_count1.test_count_in_dict() 1.29x slower on test_count1.test_call_nested_function() 1.30x slower on test_count1.test_loop_unrolled() 1.38x slower on test_count1.test_call_nested_function_many_args() 1.40x slower on test_count1.test_loop() 1.43x slower on test_count1.test_call_function_with_arguments_in_cellvars() 1.53x slower on test_exception.test_except_specific_builtin_exception() 1.53x slower on test_exception.test_except_specific_user_exception() 1.56x slower on test_count1.test_call_function_without_arguments_in_cellvars() 1.89x slower on test_dict.test_dict_instance_setattr_instance_dict() 1.89x slower on test_dict.test_dict_instance_setnewattr_instance_dict() 1.94x slower on test_count1.test_call_function() 1.96x slower on test_bltn.test_isinstance1() 2.00x slower on test_list.test_list_extend() 2.02x slower on test_count1.test_call_method_of_old_style_class() 2.02x slower on test_formatting.test_repr_formatting() 2.03x slower on test_list.test_list_getitem() 2.09x slower on test_count1.test_count_in_global2() 2.09x slower on test_list.test_list_append() 2.09x slower on test_count1.test_count_in_global() 2.10x slower on test_dict.test_dict_creation_mode2() 2.11x slower on test_create1.test_simple_loop_with_new_style_class_new() 2.12x slower on test_bltn.test_isinstance2() 2.13x slower on test_bltn.test_call_sin() 2.15x slower on test_exception.test_raise_user_exception() 2.16x slower on test_exception.test_raise_builtin_exception() 2.17x slower on test_dict.test_dict_getitem() 2.25x slower on test_formatting.test_dict_formatting() 2.26x slower on test_create1.test_simple_loop_with_old_style_class_creation() 2.28x slower on test_create1.test_simple_loop() 2.34x slower on test_dict.test_dict_creation_mode1() 2.34x slower on test_bltn.test_call_fabs() 2.52x slower on test_dict.test_dict_instance_getattr_instance_dict() 2.59x slower on test_bltn.test_isinstance3() 2.85x slower on test_unicode.test_find_pattern1() 3.06x slower on test_formatting.test_format_long() 3.15x slower on test_unicode.test_find_pattern2() 3.19x slower on test_formatting.test_format_unicode() 3.34x slower on test_dict.test_dict_class_dict_getmethod() 3.38x slower on test_formatting.test_simple_formatting() 3.46x slower on test_dict.test_dict_creation_mode3() 3.53x slower on test_dict.test_dict_raw_range() 3.84x slower on test_dict.test_dict_setitem1() 4.10x slower on test_dict.test_dict_setitem2() 4.71x slower on test_create1.test_simple_loop_with_new_style_class_creation() 4.78x slower on test_unicode.test_find_pattern4() 4.80x slower on test_count1.test_call_method_of_new_style_class() 5.14x slower on test_formatting.test_number_formatting() 5.26x slower on test_list.test_list_slice() 6.12x slower on test_exception.test_instantiate_user_exception() 6.26x slower on test_count1.test_count_in_slot() 7.06x slower on test_count1.test_count_in_attr() 7.30x slower on test_unicode.test_find_pattern8() 9.07x slower on test_unicode.test_count_worstcase() 9.11x slower on test_unicode.test_find_worstcase() 9.40x slower on test_exception.test_instantiate_builtin_exception() 10.29x slower on test_unicode.test_find_pattern16() we are not too shabby, someone may want to look at the worst offenders though. regards. |