PostgreSQL PLPython如何在性能方面与Python之外的Python进行比较?

PostgreSQL PLPython如何在性能方面与Python之外的Python进行比较?,第1张

概述我运行完全相同的Python函数,一个作为PostgreSQL PL / Python,另一个作为通常的Python脚本在PostgreSQL之外运行.令人惊讶的是,当我使用select * from pymax7(20000);调用PostgreSQL PL / Python时,它平均花费65秒,而当我调用通常的Python脚本python myscrip

我运行完全相同的Python函数,一个作为Postgresql PL / Python,另一个作为通常的Python脚本在Postgresql之外运行.

令人惊讶的是,当我使用select * from pymax7(20000);调用Postgresql PL / Python时,它平均花费65秒,而当我调用通常的Python脚本python myscript.py 20000时,它平均需要48秒.计算运行查询和脚本10次的平均值.

是否应该有这样的差异? Postgresql RDBMS(PL / Python)中的Python如何在性能方面与Python之外的Python进行比较?

我在Ubuntu 12.04 64位上运行Postgresql 9.1和Python 2.7.

Postgresql PL / Python:

CREATE FUNCTION pymax7 (b integer)  RETURNS floatAS $$     a = 0  for i in range(b):    for ii in range(b):      a = (((i+ii)%100)*149819874987)   return a$$LANGUAGE plpythonu;

Python:

import timeimport sysdef pymax7 (b):         a = 0    for i in range(b):        for ii in range(b):            a = (((i+ii)%100)*149819874987) # keePing Python busy    return adef main():        numIterations = int(sys.argv[1])            start = time.time()    print pymax7(numIterations)    end = time.time()    print "Time elapsed in Python:"    print str((end - start)*1000) + ' ms'        if __name__ == "__main__":    main()
最佳答案应该没有任何区别.两个测试用例对我来说都有大约相同的运行时间,53秒加减1.

我确实调整了PL / Python测试用例,使用与普通Python测试用例相同的测量技术:

CREATE FUNCTION pymax7a (b integer)  RETURNS floatAS $$  import time  start = time.time()  a = 0  for i in range(b):    for ii in range(b):      a = (((i+ii)%100)*149819874987)  end = time.time()  plpy.info("Time elapsed in Python: " + str((end - start)*1000) + ' ms')  return a$$LANGUAGE plpythonu;

这将告诉您是否涉及任何非Python开销. FWIW,对我来说,这个打印和客户端打印的psql与总时间之间的差异始终小于1毫秒. 总结

以上是内存溢出为你收集整理的PostgreSQL PL / Python如何在性能方面与Python之外的Python进行比较?全部内容,希望文章能够帮你解决PostgreSQL PL / Python如何在性能方面与Python之外的Python进行比较?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1205342.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存