【代码运行时的内存问题(Python,Networkx)】教程文章相关的互联网学习教程文章

python-此代码效率太低,如何增加内存和执行效率?【代码】

我正在尝试完成以下挑战:https://app.codesignal.com/challenge/ZGBMLJXrFfomwYiPs.我编写的代码似乎可以正常工作,但是效率很低,以至于无法通过测试(执行时间太长,使用的内存过多).有什么方法可以提高效率?我对构建高效的脚本还很陌生.可以使用提到的“ map()”代替“ for range(1,n)中的i”.感谢Xero Smith和其他人到目前为止对优化它的建议:from functools import reduce from operator import mul from itertools import com...

用Python写入共享内存非常慢【代码】

我使用python.multiprocessing.sharedctypes.RawArray在多个进程之间共享大型numpy数组.而且我注意到,当此数组很大(大于1或2 Gb)时,初始化变得非常慢,读/写也变得很慢(读/写时间是不可预测的,有时非常快,有时非常快非常慢). 我制作了一个小的示例脚本,该脚本仅使用一个进程,初始化一个共享数组,并多次写入该数组.并衡量执行这些操作的时间.import argparse import ctypes import multiprocessing as mp import multiprocessing.sha...

python-Scipy griddata在循环/内存泄漏内不起作用【代码】

我在循环内使用Scipy的griddata时遇到问题.基本上发生的是,循环运行时内存无限增长. 要重现该问题,只需将示例放在 http://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html 循环内:for i in range(100000):grid_z1 = griddata(points, values, (grid_x, grid_y), method='linear')我的Python版本是2.7.3,我的numpy版本是1.7.0,我的scipy版本是0.12.0b1.我正在Windows 7上运行它. 这是错误吗?如何多...

python-对DataFrame行的内存有效过滤【代码】

我有一个大的DataFrame对象(1,440,000,000行).我在内存(交换包含)限制下运行. 我需要提取具有某个字段值的行的子集.但是,如果我这样做:>>> SUBSET = DATA[DATA.field == value]我以MemoryError异常或崩溃结束.有什么方法可以显式过滤行-无需计算中间掩码(DATA.field == value)? 我发现了DataFrame.filter()和DataFrame.select()方法,但是它们在列标签/行索引而不是行数据上运行.解决方法:使用query,它应该快一点:df = df.query(...

python-列出内存使用情况【代码】

我正在尝试改善python中脚本的内存使用率,因此我需要知道列表中的RAM使用率是多少.我用以下方法测量内存使用量print str(sys.getsizeof(my_list)/1024/1024)希望可以给我提供以MB为单位的RAM中列表的大小. 它输出12 Mb,但是在顶部命令中,我看到我的脚本在运行时使用了4G笔记本电脑70%的RAM. 此外,此列表应包含?500Mb文件中的内容. 因此12Mb是不现实的. 如何测量实际内存使用量?解决方法:sys.getsizeof仅考虑列表本身,而不考虑列表...

CUDA共享内存问题(以及将CUDA与python / ctypes一起使用)【代码】

不知何故,当我在以下代码中修改d_updated_water_flow_map时,d / terrain_height_map也被修改了. 更改两个数组的分配顺序可以解决此问题,但是我认为这只是掩盖了问题的根本原因.cudaCheck(cudaMalloc((void **)&d_water_flow_map, SIZE * 4)); cudaCheck(cudaMalloc((void **)&d_updated_water_flow_map, SIZE * 4)); // changing this array also changes d_terrain_height_map cudaCheck(cudaMalloc((void **)&d_terrain_height_...

python-如何求和与平方和与内存限制?【代码】

这是此问题的后续措施: How to do a sum of sums of the square of sum of sums? 我在哪里寻求使用einsum的帮助(以实现更快的速度)并获得了一个很好的答案. 我也有suggestion使用numba.我已经尝试了两者,似乎在达到某个点之后,numba的速度提高要好得多. 那么,如何在不遇到内存问题的情况下加快速度呢?解决方法:下面的解决方案提出了3种不同的方法来进行简单的和,以及4种不同的方法来进行平方和. 总和3种方法-循环,JIT循环,einsum...

python-为什么elementtree.ElementTree.iterparse使用这么多内存?【代码】

我正在使用elementtree.ElementTree.iterparse解析大型(371 MB)xml文件. 我的代码基本上是这样的:outf = open('out.txt', 'w') context = iterparse('copyright.xml') context = iter(context) dummy, root = context.next()for event, elem in context:if elem.tag == 'foo':author = elem.textelif elem.tag == 'bar':if elem.text is not None and 'bat' in elem.text.lower():outf.write(elem.text + '\n')elem.clear() #l...

理解python的内存模型【代码】

参见英文答案 > Is a variable the name, the value, or the memory location? 4个请考虑以下日志:>>> y = 20000>>> id(y)36638928>>> y = 1000000>>> id(y)36639264 正如您所看到的,在更改y的值之后,它的ID也会更改.这是否意味着int是不可变的?幕后发生了什么? 谢谢!解决方法:是的,整数是不可变的.你需要意识到的是: >变量只是用于引用对象的名称.> 20000和1000000是两个唯一的整数对象...

python – 仅在Spyder IDE中出现内存错误【代码】

执行以下操作会在Spyder Python IDE中导致MemoryError:>>> from numpy import * >>> a_flt = ones((7000,7000), dtype=float64)+4 >>> b_flt = ones((7000,7000), dtype=float64)+1 Traceback (most recent call last):File "<stdin>", line 1, in <module> MemoryError >>> 这很奇怪,因为Spyder状态栏中的内存使用情况显示只有大约.我使用了25%的记忆.此外,当在标准Python IDE GUI中生成更多这些大型7000 * 7000阵列时,一切...

使用BeautifulSoup的Python高内存使用率【代码】

我试图在python 2.7.3中使用BeautifulSoup4处理几个网页但是在每次解析之后内存使用量都会上升. 此简化代码产生相同的行为:from bs4 import BeautifulSoupdef parse():f = open("index.html", "r")page = BeautifulSoup(f.read(), "lxml")f.close()while True:parse()raw_input()在调用parse()五次之后,python进程已经使用了30 MB的内存(使用的HTML文件大约是100 kB),每次调用它都会增加4 MB.有没有办法释放内存或某种解决方法? ...

加载模块时,Python文档字符串和注释是否存储在内存中?【代码】

Are Python docstrings and comments stored in memory when a module is loaded?我想知道这是否属实,因为我通常会很好地记录我的代码;这可能会影响内存使用吗? 通常每个Python对象都有一个__doc__方法.这些文档字符串是从文件中读取还是以其他方式处理? 我在论坛,谷歌和邮件列表中进行了搜索,但我没有找到任何相关信息. 你知道的更好吗?解决方法:默认情况下,文档字符串存在于.pyc字节码文件中,并从中加载(注释不是).如果你使用...

python – Cython:对于类型化的内存视图,我应该使用np.float_t而不是double【代码】

关于cython中的内存视图,使用NumPy类型(如np.float_t)键入视图是否有任何优势,而不是简单地在我使用numpy浮点数组时执行双操作? 我应该以同样的方式输入cdef,做e. G.ctypedef np.float64_t np_float_t ...@cython.profile(False) @cython.wraparound(False) @cython.boundscheck(False) cdef np_float_t mean_1d(np_float_t [:] v) nogil:cdef unsigned int n = v.shape[0]cdef np_float_t n_sum = 0.cdef Py_ssize_t ifor i in r...

python – 合并预先排序的文件而不将所有内容读入内存【代码】

我有一个日志文件列表,其中每个文件中的每一行都有一个时间戳,并且行在每个文件中按升序排列.不同的文件可以有重叠的时间范围,我的目标是将它们组合成一个大文件,按时间戳排序.在排序中可能存在联系,在这种情况下,我希望下一行来自我输入列表中首先列出的任何文件. 我已经看到了如何使用fileinput执行此操作的示例(请参阅here),但这似乎将所有文件读入内存.由于我的文件很大,这将是一个问题.因为我的文件是预先排序的,所以似乎应该...

如何解决Python中的内存错误【代码】

我正在处理几个大的txt文件,每个文件大约有8000000行.这些行的一个简短例子是:usedfor zipper fasten_coat usedfor zipper fasten_jacket usedfor zipper fasten_pant usedfor your_foot walk atlocation camera cupboard atlocation camera drawer atlocation camera house relatedto more plenty将它们存储在字典中的代码是:dicCSK = collections.defaultdict(list) for line in finCSK:line=line.strip('\n')try:r, c1, c2 = ...

NETWORK - 相关标签