[阅读: 376] 2005-05-31 14:03:07
"运营人员需要理解技术
我的一个朋友曾经参与一个应用的开发,使用了多用户、服务器版的Smalltalk来开发一个业务应用。应用通过了测试并投入了使用,但是使用中发现基本上每周应用都会崩溃一次。运营人员需要重新启动服务器,从最近的备份中恢复数据,然后继续运行该应用。随着越来越多的用户使用该应用,崩溃发生得越来越频繁,所以运营人员升级了服务器,这可以降低崩溃发生的频率。几经折腾之后,运营人员放弃了努力,要求开发团队修复这一问题。被派来解决此问题的开发人员几乎立即就发现了原因——因为用户总是登录到Smalltalk的应用上,运营人员让一个状态窗口保持每天24小时打开,以监视应用的运行。这个版本的Smalltalk没有机会来管理它的内存,这导致应用最终耗尽内存而崩溃。如果运营人员中有人懂得这门开发语言,他们就能避免不必要的服务器升级,只要在非高峰时期让每个人都退出该应用,让应用有机会回收未使用的内存就解决问题了。"
这样的垃圾回收策略是无可非议的,它考虑在有UI交互的情况下,不执行垃圾回收线程。我没研究过Python的垃圾回收策略,也许这个案例能提供理解问题的一些线索?