gpt4 book ai didi

python - mod_wsgi/Python 优化了吗?

转载 作者:行者123 更新时间:2023-11-28 22:07:57 24 4
gpt4 key购买 nike

我一直在尝试找出我的 mod_wsgi/Python 网络应用程序的奇怪问题。我有创建对象并调用方法的应用程序处理程序:

def my_method(self, file):
self.sapi.write("In my method for %d time"%self.mmcount)
self.mmcount += 1

# ... open file (absolute path to file), extract list of files inside
# ... exit if file contains no path/file strings
for f in extracted_files:
self.num_files_found += 1
self.my_method(f)

在开头和结尾,我写

obj.num_files_found

到浏览器。

所以这是一个递归函数,沿着文件内的文件引用树向下移动。打印文件中的任何引用,然后打开并检查这些引用,依此类推,直到所有文件都是不包含文件的叶节点。我为什么这样做并不重要……它更像是一个迂腐的例子。

您会期望输出是确定性的

比如

Files found: 0
In my method for the 0 time
In my method for the 1 time
In my method for the 2 time
In my method for the 3 time
...
In my method for the n time
Files found: 128

并且对于前几个请求,它符合预期。然后只要我刷新,我就会得到以下结果

Files found: 0
In my method for the 0 time
Files found: 128

即使我知道,从以前的刷新和没有代码/文件更改来看,枚举 128 个文件需要 n 次。

那么问题是:mod_wsgi/Python 是否包含会停止完整执行的内部优化?它是否猜测输出是确定性的和缓存的?

请注意,在如预期的刷新时,REMOTE_PORT 每次递增 1 ... 当它使用短输出时,REMOTE_PORT 的增量疯狂跳跃。但是可能无关。

我是Python新手,温柔点

已解决

谁知道它是什么,但是删除 Apache、mod_python、mod_wsgi 和几乎所有 HTTP 相关的东西并重新安装解决了这个问题。有些东西很坏但现在看起来还好:)

最佳答案

Apache/mod_wsgi 可能会在多进程/多线程配置中运行,这可能会导致编写代码时假设它在单个进程中运行,而该进程可能是单线程的。有关不同配置可能性的讨论以及这对共享数据意味着什么,请参阅:

http://code.google.com/p/modwsgi/wiki/ProcessesAndThreading

关于python - mod_wsgi/Python 优化了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/957685/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com