问题最初发现在 JSI 的php版本调试程序里面;windows 操作系统,php5.x系列。已经困扰我好几个月了。
因为,我要吧一些类库打包成jar或者zip文件,能后调试的时候,自动在压缩包内查找并组织具体js脚本。
但是,使用过程中却发现,Apache内存一个劲上涨。
平均每刷新一次,内存上涨5-7M。知道最后上涨到近2G,物理内存告急,Apache重新启动。
按理说,php跑一次就终止进程的,怎么可能有如此严重的问题呢?
最后,我被逼的是在没办法,抛弃php原生的 zip_open 系列函数。
自己整了一个纯php的解压实现。才算完事大吉了。
出问题的代码是这样的,简单的咬死,大家看看,这样都出错,还有没有天理!!
function zip_get_entry($file,$path){
$zip = zip_open($file);
if (!is_resource($zip)) {
die(get_zip_error($zip));
}
while ($entry = zip_read($zip)) {
if (zip_entry_name($entry) == $path && zip_entry_open($zip, $entry, "r")) {
$result = zip_entry_read($entry, zip_entry_filesize($entry));
zip_entry_close($entry);
zip_close($zip);
return $result;
}else{
zip_entry_close($entry);
}
}
zip_close($zip);
}
如果您也碰到类似的问题,要寻找解决办法,可以使用这个参考实现:
http://code.google.com/p/jsi/source/browse#svn/trunk/JSI/web/scripts
分享到:
相关推荐
这包括减少不必要的变量,合理使用数据结构,避免内存泄漏,以及及时释放不再需要的资源。使用像`unset()`这样的函数可以清除变量占用的内存。 6. **内存泄漏**: 检查是否存在内存泄漏,确保所有分配的内存都被...
首先,我们需要准备的主要文件是"php-5.2.1-Win32.zip",这是一个针对Windows系统的PHP二进制压缩包。解压这个文件,你会得到PHP的执行文件和其他必要的组件。确保选择一个合适的位置保存,因为后续配置会依赖这个...
在实际开发中,结合`aszip.fla`(可能是Flex项目的源文件)、`create.php`(可能用于生成Zip文件的PHP脚本)和`org`(可能包含库文件或其他组织结构)等资源,你可以构建更复杂的Zip文件操作功能。
例如,你可以直接在内存中创建一个新的ZIP文件,或者读取已有的ZIP文件内容,无需担心磁盘空间的占用。此外,对于已经存在的ZIP文件,TbsZip支持添加、修改、删除其中的文件,甚至可以直接在压缩包内读取和写入数据...
在解压这个ZIP文件后,你会找到这个探针的源代码,通常是一个名为"iProber.php"的PHP文件。运行这个文件,你只需在服务器上通过浏览器访问这个文件的URL,即可看到探针生成的报告。 这个报告会包含以下关键信息: ...
使用`iniscan-master`时,用户首先需要解压下载的`iniscan-master.zip`文件,然后按照文档说明运行程序,指定待检查的PHP INI文件路径。工具会输出一个报告,列明所有发现的问题及其修复建议。对于新手来说,这是一...
在使用PHP Memcache DLL时,确保你正确地配置了Memcached服务器,并且了解了如何优化缓存策略,避免数据过期和内存泄漏问题。同时,考虑到PHP的版本更新,要定期检查并更新你的Memcache扩展,以保持与最新PHP版本的...
2. **内存使用**:探针可以监控PHP进程的内存消耗,这对于发现内存泄漏和优化代码性能特别有用。 3. **运行时间**:探针通常会记录脚本的执行时间,帮助开发者识别性能瓶颈,优化代码运行效率。 4. **服务器负载**...
5. **内存限制**:探针会显示PHP的内存限制,这对于诊断性能问题和内存泄漏很有帮助。 6. **上传限制**:探针可能还会报告文件上传大小和POST数据大小的限制,这对上传文件和处理大表单数据的应用来说很重要。 7. ...
1. **内存分析**:通过跟踪每个函数调用的内存分配,探针可以帮助识别内存泄漏,以及哪些代码片段消耗了大量内存。 2. **性能计时**:探针可以记录函数调用的开始和结束时间,以此计算出每个操作的执行时间,从而找...
1. **内存管理**:探针可以显示PHP进程占用的内存,帮助开发者识别是否有内存泄漏。 2. **性能指标**:如CPU利用率,这可以反映PHP脚本的执行效率。 3. **PHP扩展状态**:显示哪些PHP扩展被加载,这对于确保网站功能...
8. **性能优化**:探针代码的效率至关重要,因此源码中可能包含了PHP的性能优化技巧,比如减少不必要的计算、使用缓存、避免内存泄漏等。 9. **安全考虑**:探针程序可能会涉及到服务器的安全问题,例如防止SQL注入...
3. **内存使用情况**:探针会提供内存消耗的实时数据,包括PHP进程的内存占用、内存限制以及内存泄漏检测。 4. **CPU使用率**:监测服务器的CPU负载,帮助识别是否存在过度资源消耗的问题。 5. **运行时间统计**:...
【标题】"基于PHP的9gan PHP探针清爽无敌增强版.zip" 提供的是一个针对PHP环境进行健康检查和性能监控的工具。PHP探针通常用于帮助开发者和系统管理员了解服务器上的PHP运行环境,包括PHP版本、服务器信息、内存使用...
在给定的文件列表中,`unzip.php` 可能是解压缩文件的脚本,`myzip.php` 可能用于创建或修改ZIP文件,而`php在线压缩解压程序.url` 是一个快捷方式或书签,指向实际的PHP应用程序。 综上所述,PHP的在线压缩和解...
4. **内存使用情况**:探针可以实时监测PHP进程的内存使用,帮助开发者优化代码,防止内存泄漏。 5. **CPU与内存占用**:探针能显示服务器的CPU使用率和内存占用情况,这对于监控服务器负载和性能很有帮助。 6. **...
标题中的"C1G的PHP探针.zip"是一个与PHP相关的压缩包文件,通常包含用于监控、调试或性能分析的PHP探针工具。PHP探针是一种软件工具,它允许开发者深入了解PHP应用程序的运行情况,包括内存使用、执行时间、错误日志...
9. **弱引用**:现在可以通过`WeakReference`类实现弱引用,避免了循环引用导致的内存泄漏问题。 10. **预定义异常类**:PHP 8.0提供了一些内置的异常类,如`LogicException`和`RuntimeException`,可以更准确地抛...
1. **资源管理**:由于PHPExcel可能消耗大量内存,应确保在操作完成后及时释放相关资源,避免内存泄漏。 2. **分块读写**:处理大数据时,使用`PHPExcel_WorksheetIterator`或自定义迭代器分块读取和写入数据。 3. *...
【PHP实例开发源码-爱特php探针 v2.0.zip】是一个包含PHP源代码的压缩包,主要用于帮助开发者了解和学习PHP编程语言在实际应用中的实现方式。"爱特php探针"是一个小巧而实用的工具,它能够提供关于服务器环境、PHP...