python语言写的算法怎么放到项目中,在Python中使用多处理,导入语句的正确方法是什么?...

本文探讨了在Python多进程编程中,如何处理导入模块的问题。作者指出,当导入的类和函数仅在子进程中使用时,考虑按需导入可以减少资源消耗。在PEP8规范下,通常建议将导入语句放在文件顶部,但考虑到效率,作者在`main`函数内进行了局部导入。文章讨论了如何在遵循编码规范的同时,优化多进程代码的性能,特别是在涉及大量导入和内存占用的情况下。
摘要由CSDN通过智能技术生成

Imports are always put at the top of the file, just after any module comments and docstrings, and before module globals and constants.

但是,如果我要导入的类/方法/函数只由子进程使用,那么在需要时进行导入肯定更有效吗?我的代码基本上是:p = multiprocessing.Process(target=main,args=(dump_file,))

p.start()

p.join()

print u"Process ended with exitcode: {}".format(p.exitcode)

if os.path.getsize(dump_file) > 0:

blc = BugLogClient(listener='http://21.18.25.06:8888/bugLog/listeners/bugLogListenerREST.cfm',appName='main')

blc.notifyCrash(dump_file)

main()是主应用程序。这个函数需要大量的导入才能运行,这些导入占用一些ram空间(+/-35MB)。当应用程序在另一个进程中运行时,导入在pep8之后进行了两次(一次由父进程执行,另一次由子进程执行)。还应该注意的是,由于父进程正在等待查看应用程序是否崩溃并留下exitcode(这要归功于faulthandler),所以只应调用一次该函数。所以我在main函数中对导入进行了如下编码:

^{pr2}$

而不是:import shutil

import locale

import faulthandler

from PySide.QtCore import Qt

from PySide.QtGui import QApplication, QIcon

def main(dump_file):

有没有一种“标准”的方法来处理使用多处理完成的导入?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值