小编cas*_*sey的帖子

读取或转换单词.doc文件iOS

iOS上的其他应用程序如何能够读写word文档?我看到了一些与此相关的其他问题,并且接受的答案是"无法完成".我不想只显示一个单词doc,我想阅读它的格式.其他应用程序是如何做到的,他们是否使用Microsoft发布的已发布标准自行编写解析?在处理文件之前,他们是否使用某种捆绑实用程序将文件转换为XML或HTML等其他格式?是否有开源方式这样做?寻找想法.

c ms-word doc objective-c ios

12
推荐指数
2
解决办法
2万
查看次数

Perl线程慢慢消耗内存

我正在运行一个包含10个线程的Perl服务器.它们永远不会在程序退出之前被销毁,但这是我打算尽可能多的正常运行时间,所以这就是为什么这对我来说是一个问题.线程多次处理一个简单的任务.当我启动服务器并启动所有线程时,我发现我有288.30 MB的空闲时间.经过每个线程的几次迭代后,它报告285.96 MB空闲.这并不是那么糟糕.可能只是在这些迭代过程中,一些堆栈空间被分配或者某些东西.但是15分钟后,可用内存下降到248.24 MB!我的记忆发生了什么?现在,有趣的是,它已达到稳定水平.它继续慢慢消耗,但不像最初那么快.

我在线程的每次迭代之后打印出可用空间,这样我就可以慢慢看到它.现在有趣的是它不会每次都减少.有时,迭代后空闲内存保持不变.

我正在使用从Linux 2.6上的源代码构建的Perl 5.8.8

有没有人有任何想法,甚至建议可能导致这种情况的原因是什么?我正在考虑将我的Perl升级到更高版本以排除Perl核心内部的内存泄漏.

更新:这可能是一个线程堆栈大小问题?我可以为堆栈分配比我需要的更多内存吗?当我创建我的线程时,我不会更改默认设置.我是不是该?线程doc说默认值通常为16MB,具体取决于系统.16x10线程= 160MB - >这可能是罪魁祸首.思考?

更新:我构建并安装了Perl 5.12.1并重建了模块和所有内容.已经运行了大约一个小时的脚本,这是我注意到的.内存使用现在可以管理,但并不理想.

  • 在产卵之初,我的线程似乎有点低.从大约60-66MB分配到我的10个线程到~45-50MB.
  • 经过一些迭代后,它们的使用总量增加了3MB(与之前大致相同).
  • 到目前为止,我的预期.产生的所有内存,然后只是我在我的线程中使用的变量的一点点.这是我不喜欢的部分.跑了大约10分钟后,我再输了65MB!为什么这样做?如果只用3MB就可以完成几次迭代,为什么要继续分配呢?
  • 此时已经运行了一个半小时,他们不再使用额外的65MB,这是额外的84MB!
  • 它慢慢占用更多内存但是奇怪的是,每次迭代的可用内存量并没有减少.我在每次迭代之前和之后打印出可用内存,它会在一段时间内保持相同或悬停+ - 在一定时间内保持一段时间,然后突然改变5-10MB.我不能让这个运行超过一天,两天,因为它开始接近我可用内存的80/90%.

还有其他想法吗?我可以试试吗?我已经无法解决所有变数了.

更新:我真的想继续使用glibc重新编译Perl作为最后的手段,因为我发现一些报告,在某些版本的Linux上会出现段错误.所以自从我上次发布以来,我进一步探讨了哈希中循环的可能性.一无所获.所以我花了最后几天分析我的子程序并缓存在另一次迭代中使用的任何东西.每次都会重新创建很多新东西,而Perl并没有清理所有内容,即使我明确地解决了这一切.所以如果它不合作,我就不会破坏它.将看看缓存我的对象是否有帮助.稍后会发布内存使用情况统计信息.

更新:嗯,非常奇怪.即使在缓存我的数据以便以后重用之后,内存也会以大致相同的速率上升.它现在开始更高,因为我正在缓存,但随后它继续上升,即使它主要是使用我的缓存对象.这令人费解.猜猜是时候尝试一下glibc ......否则这只是选择Perl的一个缺点,并且必须每隔几天重新启动一次服务器.

更新:尝试没有缓存,没有glibc,再次.工作正常一段时间,几个小时,然后它开始增长.只是想让你看到一个图表.
http://tinypic.com/r/311nc08/3
http://i32.tinypic.com/311nc08.jpg

更新:这是一个日志的摘录,记录每个线程在大约一分钟之前和之后的可用内存.也许这可以帮助别人更好地理解问题.它看起来有点稳定,然后每隔一段时间就会吃掉更多的内存.在这里,我失去了近40 MB!

[9:8:30, Fri Jul 23, 2010] [0] Memory usage at end thread 1: 253.812736MB (obj cache: 136)
[9:8:30, Fri Jul 23, 2010] [0] Memory usage at idle thread 1: 253.812736MB (obj cache: 136)
[9:8:34, Fri Jul 23, 2010] [204] Sending data to thread
[9:8:34, …
Run Code Online (Sandbox Code Playgroud)

sockets memory perl performance multithreading

9
推荐指数
2
解决办法
5957
查看次数

标签 统计

c ×1

doc ×1

ios ×1

memory ×1

ms-word ×1

multithreading ×1

objective-c ×1

performance ×1

perl ×1

sockets ×1