Документ взят из кэша поисковой машины. Адрес оригинального документа : http://www.fds-net.ru/ashowflat.php?Number=11319388&src=&showlite=l
Дата изменения: Unknown
Дата индексирования: Sat Mar 1 15:13:21 2014
Кодировка: Windows-1251
скорость Python - Public forum of MSU united student networks
Technical >> Development (Archive)

Страницы: 1 | (8)
lomik : Re: скорость Python  [re:zex]   22.01.2013 01:17    | Reply | Edit |
8
12 секунд вместо 30 минут и никакого Cython :)

code:
import pysqrt_c print pysqrt_c.sqrt_speed_test(1.0,2.0,3.0)


code:
#include <Python.h> #include <math.h> static PyObject* pysqrt_speed_test(PyObject* self, PyObject *args) { double x,y,z,r; if (!PyArg_ParseTuple(args, "ddd", &x, &y, &z)) return NULL; int i,j; for (i=0; i<3001; i++) { for (j=0; j<1000001; j++) { r=sqrt(x*x+y*y+z*z); } } return Py_BuildValue("d",r); } static PyMethodDef ModuleMethods[] = { {"sqrt_speed_test", pysqrt_speed_test, METH_VARARGS, "sqrt speed test"}, {NULL, NULL, 0, NULL} }; PyMODINIT_FUNC initpysqrt_c(void) { PyObject *m; m = Py_InitModule("pysqrt_c", ModuleMethods); if (!m) { return; } } int main(int argc, char **argv) { Py_SetProgramName(argv[0]); Py_Initialize(); initpysqrt_c(); return 0; }


code:
$ gcc -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7/ -c pysqrt_c.c $ gcc pysqrt_c.o -lpython -o pysqrt_c.so $ time python 1.py 3.74165738677 real 0m12.027s user 0m12.013s sys 0m0.013s


zex   [re:Fj_]   22.01.2013 12:52    | Reply | Edit |
3
Quote:

Ты ваще не понял что тебе horror посоветовал, между прочим.




с чего ты ваще это взял?

он это посоветовал и дал ссылки, с тех пор я ничего и не писал, разбираюсь

Quote:

зацени pypy




ok, спасибо за совет

feather   [re:lomik]   22.01.2013 21:44    | Reply | Edit |
2
А если еще -O2 добавить!!!!!!!111

Top