Tag: 内存

如何在C / C ++中读/写任意位

假设我有一个二进制值为11111111的字节b 我如何读取从第二位开始的3位整数值或从第五位开始写入四位整数值?

iOS6的MKMapView使用了大量的内存,到崩溃的应用程序,任何人注意到这一点?

有没有其他人在iOS 6应用程序中使用地图,注意到内存使用率非常高,以至于接收内存警告一直到崩溃的程度? 我已经通过仪器运行应用程序,我没有看到任何泄漏,直到地图视图创build应用程序一直运行约3mb的现场字节。 一旦地图被创build并且瓦片被下载,实时字节跳跃到~13mb实时字节。 然后,当我移动地图,放大和缩小实时字节连续攀登,直到应用程序崩溃约40MB的现场字节。 顺便说一句,这是在iPhone 4上。 在iPod touch上,甚至更早崩溃。 我正在重复使用注释视图,没有任何泄漏。 有没有人看到与新的iOS 6地图相同的高内存使用率? 另外,有没有人有一个解决scheme?

MySQL最大的内存使用量

我想知道如何设置MySQL在Linux服务器上使用的内存量的上限。 现在,MySQL将继续占用每一个新查询请求的内存,以便最终耗尽内存。 有没有办法限制MySQL的使用量不超过这个数量?

Java中的循环引用

给定一个以复杂的,循环的方式相互引用的类实例的聚合:垃圾收集器可能无法释放这些对象吗? 我隐约记得过去这是JVM中的一个问题,但是我认为这在多年前就已经解决了。 然而,一些调查显示,我现在正面临一个循环引用,就是造成内存泄露的原因。 注:我一直觉得JVM有能力解决循环引用,从内存中释放这些“垃圾岛”。 不过,我只是提出这个问题,看是否有人发现任何例外。

PHP内存分析

什么是分析PHP页面的内存使用情况的好方法? 例如,要查看我的数据正在使用多less内存,和/或哪些函数调用正在分配最多的内存。 xdebug似乎没有提供内存信息的分析function。 xdebug在它的跟踪function中提供了它。 这与我想要的非常接近,除了绝对数量的数据是压倒性的,因为它显示了每个函数调用的内存增量。 如果可以将呼叫隐藏在某个深度以下,那么可以使用一些GUI工具,这将解决我的问题。 还有别的事吗?

Python在64位窗口上的32位内存限制

我收到一个记忆问题,我似乎无法理解。 我在一个Windows 8 64位的机器,8GB的内存和运行一个32位的Python程序。 程序读取5,118个压缩的numpy文件(npz)。 Windows报告这些文件在磁盘上占用1.98 GB 每个npz文件包含两段数据:“arr_0”的types为np.float32,“arr_1”的types为np.uint8 python脚本读取每个文件将其数据附加到两个列表中,然后closures该文件。 围绕文件4284/5118,程序抛出一个MemoryException 不过,任务pipe理器说错误发生时python.exe * 32的内存使用量是1,854,848K〜1.8GB。 远远低于我的8 GB限制,或32位程序的4GB限制。 在程序中,我捕捉到内存错误,并报告:每个列表的长度为4285.第一个列表包含共计1,928,588,480个float32的〜= 229.9 MB的数据。 第二个列表包含12342962672 uint8的〜= 1471.3MB的数据。 所以,一切似乎都在检查。 除了我得到内存错误的部分。 我绝对有更多的内存,它崩溃的文件是〜800KB,所以它没有阅读一个巨大的文件失败。 此外,该文件没有损坏。 如果我事先没有用完所有的内存,我可以读得很好。 为了让事情更加令人困惑,所有这些似乎在我的Linux机器上运行良好(尽pipe它的内存是16GB,而我的Windows机器是8GB),但是,似乎并不是机器的RAM造成这个问题。 为什么Python抛出一个内存错误,当我期望它应该能够分配另外2GB的数据?

有效地计算文本文件的行数。 (200MB +)

我刚刚发现,我的脚本给了我一个致命的错误: Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 440 bytes) in C:\process_txt.php on line 109 这条线是这样的: $lines = count(file($path)) – 1; 所以我认为这是难以加载文件memeory和计数行数,有没有更有效的方式,我可以做到这一点,没有内存问题? 我需要对文本文件进行计数,范围从2MB到500MB。 有时候也许是Gig。 感谢所有的帮助。

为键入内存视图分配内存的build议方式是什么?

有关types化内存视图的Cython文档列出了分配给types化内存视图的三种方法: 从一个原始的C指针, 从np.ndarray和 从cython.view.array 。 假设我没有从外部传递给我的cython函数的数据,而是想分配内存并将其作为np.ndarray返回,我select了哪些选项? 还假定该缓冲区的大小不是一个编译时常量,即我不能在堆栈上分配,但需要选项1的malloc 。 这3个选项因此会像这样: from libc.stdlib cimport malloc, free cimport numpy as np from cython cimport view np.import_array() def memview_malloc(int N): cdef int * m = <int *>malloc(N * sizeof(int)) cdef int[::1] b = <int[:N]>m free(<void *>m) def memview_ndarray(int N): cdef int[::1] b = np.empty(N, dtype=np.int32) def memview_cyarray(int N): cdef […]

解决Java内存泄漏的一般策略?

我有一个独立的程序,我本地运行,这意味着一个服务器types的程序运行24/7。 最近我发现它有内存泄漏,现在我们唯一的解决scheme是每4小时重新启动一次。 寻找这种内存泄漏的最佳方式是什么? 我们应该使用哪种工具和方法?

stringstream,string和char *转换混淆

我的问题可以归结为,从stringstream.str().c_str()返回的string在内存中,为什么不能被分配给一个const char* ? 这个代码示例会比我更好地解释它 #include <string> #include <sstream> #include <iostream> using namespace std; int main() { stringstream ss("this is a string\n"); string str(ss.str()); const char* cstr1 = str.c_str(); const char* cstr2 = ss.str().c_str(); cout << cstr1 // Prints correctly << cstr2; // ERROR, prints out garbage system("PAUSE"); return 0; } stringstream.str().c_str()可以被分配给一个const char*的假设导致了一个我花了一段时间追踪的bug。 对于奖励积分,任何人都可以解释为什么用replacecout语句 cout << […]