【与CPython相比,PyPy占用大量内存】教程文章相关的互联网学习教程文章

Python共享内存数组,没有属性get_obj()【代码】

我正在使用多处理模块操作numpy数组,并且遇到了一些问题,尝试了我在这里运行的一些代码.具体来说,我从一个numpy数组创建一个ctypes数组,然后尝试将ctypes数组返回到一个numpy数组.这是代码:shared_arr = multiprocessing.RawArray(_numpy_to_ctypes[array.dtype.type],array.size)我不需要任何类型的同步锁,所以我使用的是RawArray.基于输入数组的dtype从字典中提取ctypes数据类型.这非常有效.shared_arr = numpy.ctypeslib.as_ar...

有没有用Python内置的好的和易于使用的模块来编辑内存?【代码】

有没有用Python内置的好的和易于使用的模块来编辑内存?或者有这样的模块吗? 我正在寻找的是一种附加到进程并从中读取/写入的方法.就像Cheat Engine的工作原理一样. Here’s a example of how it works in C++.解决方法:花了一些时间才找到这样做的方法,但这就是我想出来的!from ctypes import * from ctypes.wintypes import *pid = 0 #the pid of the process, aquired earlier by handaddress = 0x0000 #where to read from w...

如何记录python MemoryError(当我内存不足时)【代码】

作为我的一个程序的一部分,我想捕获任何MemoryError并记录它们.目前,我正在使用traceback.format_exception来格式化所有其他异常;我也想为MemoryError做这件事. 但是,使用format_exception需要使用更多内存,这正是我内存不足时无法做到的. 做什么? 除了终止之外,当我抛出MemoryError时,我该怎么办?理想情况下,我会记录它们然后恢复程序,假设释放处理程序和thrower *之间的堆栈部分已经为我释放了足够的内存. (*以及那些堆对象只能...

如何修复“wxPyXmlSubclassFactory *’类型的内存泄漏,没有发现析构函数”来自wxPython / wxFormBuilder的错误?【代码】

我正在尝试按照this tutorial使用wxPython和wxFormBuilder快速制作简单的GUI. 使用wxFormBuilder,我创建了一个超级简单的框架,其中包含一个垂直布局,一个编辑文本控件和一个按钮,它只清除文本控件的值. WxFormBuilder生成了Python代码,我只是添加了几行来清除单击按钮时文本控件的值.这是一个愚蠢的简单框架的图像. 当我在Python中运行此文件时,GUI会清除我在文本控件中键入的文本.当我点击Frame的关闭按钮时,我看到了这个: swig ...

Python内存免费【代码】

我想释放一些内存,例如,我定义一个变量:b = 10 id(b) # it shows 1935260400然后我改变了b的值:b = 11 id(b) # it shows 1935260432之后,我再次改变了b:b = 10 id(b) # it still shows 1935260400,why is it same with first time?这是问题,第一次b = 10,然后第二次b = 11,为什么第三次的id(b)与第一次相同?值10仍然在内存中吗?如何释放值10占用的内存?解决方法:在简单整数对象的python文档中,这是解释.看看here.介于-5和...

python – 如何从内存数据中创建wx.Image对象?【代码】

我正在使用wxPython在Python中编写GUI应用程序,我想在静态控件(wx.StaticBitmap)中显示图像. 我可以使用wx.ImageFromStream从文件加载图像,这可以正常工作:static_bitmap = wx.StaticBitmap(parent, wx.ID_ANY) f = open("test.jpg", "rb") image = wx.ImageFromStream(f) bitmap = wx.BitmapFromImage(image) static_bitmap.SetBitmap(bitmap)但是,我真正希望能够做的是从内存中的数据创建图像.所以,如果我写f = open("test.jpg"...

Python如何处理内存?

我一直在寻找in-memory database – 它让我思考,Python如何处理与连接无关的IO(甚至是数据);例如,哈希,集合等;这是一个配置在某处,还是基于资源动态管理;是否有“简单”的方法来查看资源对真实程序的影响,并模拟性能受到影响的不同硬件设置? 注意:如果重要,Redis是我正在查看的内存数据存储;有一个wrapper for Redis datatypes的实现,所以他们模仿Python中的数据类型.解决方法:Python分配应用程序要求的所有内存.政策空间不大.唯...

python – psycopg2超出共享内存和提示增加max_pred_locks_per_transaction【代码】

在postgresql 9.1中插入大量数据时.使用Python脚本,我们在此查询上收到以下错误:X: psycopg2.ProgrammingError in /home/hosting/apps/X X_psycopg.py:162 in : Execute execute (SELECT * FROM xml_fifo.fifoWHERE type_id IN (1,2)ORDER BY type_id, timestamp LIMIT 10): out of shared memory HINT: You might need to increase max_pred_locks_per_transaction我们增加了这个数字但仍然没有共享内存(max_pred_locks_per_tra...

python – Pandas – 检索HDF5列和内存使用情况

我有一个简单的问题,我不禁感到我错过了一些明显的东西. 我已经从源表(SQL Server)读取数据并创建了一个HDF5文件来通过以下方式存储数据: output.to_hdf(‘h5name’,’df’,format =’table’,data_columns = True,append = True,complib =’blosc’,min_itemsize = 10) 数据集约为5000万行和11列. 如果我将整个HDF5读回数据帧(通过HDFStore.select或read_hdf),它会消耗大约~24GB的RAM.如果我将特定列解析为读取语句(例如,选择2或...

对象的Python列表占用了太多内存【代码】

我有以下代码,它创建了类foo的一百万个对象:for i in range(1000000):bar = foo()list_bar.append(bar)bar对象只有96个字节,由getsizeof()确定.然而,追加步骤需要几乎8GB的内存.一旦代码退出循环,ram使用量就会下降到预期的数量(列表的大小有些开销~103MB).只有在循环运行时,ram使用才会飙升.为什么会这样?任何解决方法?PS:使用生成器不是一个选项,它必须是一个列表. 编辑:xrange没有帮助,使用Python 3.内存使用率仅在循环执行...

python – cython:ndarray字符串的内存视图(或直接ndarray索引)【代码】

如何指定包含字符串的ndarray的内存视图? char [:],char * [:],…不起作用. 为了说明,我的问题是函数abc(…)的定义:cdef void abc(char[:] in_buffer):cdef char * elementelement = address(in_buffer[1])...def main():cdef Py_ssize_t i, n = 100a = np.array(['ABC', 'D', 'EFGHI'])for i in range(n):abc(a)如果无法访问内存视图,我可以自己实现直接阵列访问吗?我需要避免功能abc(…)的GIL. 编辑1:回应Bi Rico的回答. 我...

python – 为列表分配内存【代码】

当我已经知道列表最终会有的大小时,我可以设置列表的容量吗?我试图避免Python在向其追加项目时重新分配内存. 在构造函数中,设置容量,大小,长度或len不起作用.def merge_lists(a, b):result = list(capacity=len(a) + len(b))...编辑:…无需实际添加任何元素.解决方法:假设你想要10个元素,你可以这样做:l = [None] * 10要么l = range(10)

Python如何在处理后为类对象释放内存呢?【代码】

我使用None关键字删除一个类对象.class demo:class membersobj= demo()some processingobj=None使用None,是否会释放内存? 我发现del也可以用来删除一个类对象.或者我应该使用del obj释放记忆? 在删除类对象和释放内存或调用垃圾收集时使用del和None有什么区别?解决方法:当没有对该对象的更多引用时,将释放Python对象. 将obj重新绑定为None会减少对象的引用计数,因此del obj也是如此.在这两种情况下,如果obj是对它的最后一个引用...

python – Pandas read_csv()在具有140GB RAM的VM上1.2GB文件内存不足【代码】

我正在尝试读取1.2G的CSV文件,其中包含25K条记录,每条记录包含一个id和一个大字符串. 但是,大约10K行,我收到此错误:pandas.io.common.CParserError: Error tokenizing data. C error: out of memory这看起来很奇怪,因为VM有140GB RAM,而在10K行时内存使用率只有1%左右. 这是我使用的命令:pd.read_csv('file.csv', header=None, names=['id', 'text', 'code'])我还运行了以下虚拟程序,它可以成功地将我的内存填满接近100%.list ...

使用GDB进行Python内存调试【代码】

我们有一个Linux应用程序,它使用OpenSSL的Python绑定,我怀疑它会导致随机崩溃.偶尔,我们会看到它崩溃的消息:Python Fatal Error: GC Object already tracked这似乎是库的编程错误,或内存损坏的症状.在给定核心文件的情况下,有没有办法知道它执行的最后一行Python源代码?或者如果它附加在GDB中?我意识到它可能都是编译后的字节码,但我希望有人可能已经解决了这个问题.目前它正在运行跟踪模块激活,我们希望它会再次发生,但可能需要...