2

是否存在导致 Windows XP SP 3 上缓存文件的文件修改时间被任意更新但没有任何实际更改的已知问题?

标准 Windows XP 上是否有一些服务 - 备份、同步、版本控制、病毒扫描程序 - 已知会触摸文件?他们都有一个.txt扩展名。

如果没有,那就忘记它。然后我的缓存例程出现问题,我将调试我的方式。

背景:

我正在围绕 Windows 服务器上的慢速网站构建一个简单的缓存包装器。

我将filemtime()时间戳与数据库中的某些列进行比较,以确定缓存文件是否过时。

我在使用这种方法时遇到问题,因为缓存文件的修改时间似乎在操作之间得到更新,而我没有做任何事情。这会导致显示陈旧的文件。

我是机器上唯一的用户。操作系统是 Windows XP,网络服务器是 XAMPP Apache 2 和 PHP 5.2

4

2 回答 2

1

我能想到的唯一 mtime 问题是可怕的DST 错误。这听起来不像你得到的。

当然,还有其他 Windows 工具可能会在你背后修改文件,但通常是用户级的东西,比如 WMP 与 ID3 标签搞砸,或者狡猾的 AV ......我不会期望任何东西会触及你的缓存文件。

(也许您可以尝试对 mtimes 进行相等比较,而不是大于/小于,仅在完全匹配时才使用缓存?这至少意味着,如果某些反社会泄密者正在触摸文件,它只会变慢你有点失望,而不是让你提供陈旧的文件。FWIW 这就是 Python 使用它的字节码缓存所做的。)

于 2010-04-29T13:55:58.207 回答
1

您可以在机器上设置日志记录*以找出正在更改文件的内容。根据您的描述,我认为这种情况经常发生,因此您可能会发现ProcessMonitor德语)是更好的监控解决方案。

*我认为您也可以使用板载工具设置日志记录,只是不知道如何

于 2010-04-29T14:14:00.937 回答