使缓存存储在哪里?

马特

Make似乎将文件修改时间与某种内部修改时间缓存进行了比较。有谁知道此缓存位于何处或如何访问它?

不可思议的

使用实用程序,例如strace,看看它在做什么。在这里,我们可以跟踪-e trace=filemake程序执行的所有文件操作()。

假设我们有foo.c一个foo,并使用简单的Makefile从中构建了一个,如下所示:

$ cat Makefile
foo: foo.c

让我们运行make

$ strace -e trace=file make
execve("/usr/bin/make", ["make"], [/* 20 vars */]) = 0
...
open("Makefile", O_RDONLY)              = 3
stat("Makefile", {st_mode=S_IFREG|0644, st_size=11, ...}) = 0
...
stat("foo", 0x7ffd4373c8c0)             = -1 ENOENT (No such file or directory)
stat("foo.c", {st_mode=S_IFREG|0644, st_size=36, ...}) = 0
cc     foo.c   -o foo
--- SIGCHLD {si_signo=SIGCHLD, si_code=CLD_EXITED, si_pid=27717, si_status=0, si_utime=0, si_stime=0} ---
stat("foo", {st_mode=S_IFREG|0755, st_size=8549, ...}) = 0
+++ exited with 0 +++

在这里,您会看到它检查的存在foo并找不到它,它检查的存在foo.c,然后调用规则进行编译。

现在,您可以再次调用make,结果将有所不同:

$ strace -e trace=file make
...
stat("foo", {st_mode=S_IFREG|0755, st_size=8549, ...}) = 0
stat("foo.c", {st_mode=S_IFREG|0644, st_size=36, ...}) = 0
make: `foo' is up to date.
+++ exited with 0 +++

如果使用某种缓存文件,我们希望看到一个open()和一个read()反对。如果在两次运行之间使用了此缓存,那么我们也希望看到write()它。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android在哪里存储缓存的数据?

来自分类Dev

播放框架缓存存储在哪里?

来自分类Dev

AngularJS在哪里存储缓存数据

来自分类Dev

Knitr缓存的输出存储在哪里?

来自分类Dev

AngularJS在哪里存储缓存数据

来自分类Dev

播放框架缓存存储在哪里?

来自分类Dev

juju在哪里存储其缓存

来自分类Dev

AngularJS HTTP在缓存对象时将对象存储在哪里?

来自分类Dev

Ubuntu在哪里存储用于接口编号的MAC地址缓存?

来自分类Dev

存储的wheel.whl缓存文件在哪里?

来自分类Dev

在Cloud Run中将共享的缓存对象存储在哪里?

来自分类Dev

WordPress缓存功能在哪里存储数据?

来自分类Dev

Ubuntu在哪里存储用于接口编号的MAC地址缓存?

来自分类Dev

Ubuntu 中存储的缓存 python 包在哪里?

来自分类Dev

时间在哪里缓存

来自分类Dev

“死” DNS条目的异常缓存;此缓存存储在哪里?

来自分类Dev

JSESSIONID存储在哪里?

来自分类Dev

枚举存储在哪里?

来自分类Dev

JSESSIONID存储在哪里?

来自分类Dev

Firefox缓存在哪里?

来自分类Dev

在多个程序包中使用缓存时,应在哪里将Cache Connection Manager的CAW文件存储在哪里?

来自分类Dev

在多个程序包中使用缓存时,应在哪里将Cache Connection Manager的CAW文件存储在哪里?

来自分类Dev

Plex媒体服务器在哪里存储其缓存/设置?

来自分类Dev

浏览器的HTTP缓存的存储位置在哪里?磁盘或内存

来自分类Dev

Plex媒体服务器在哪里存储其缓存/设置?

来自分类Dev

客户端的HTML5应用程序缓存文件存储在哪里?

来自分类Dev

Google Chrome浏览器中的Youtube视频缓存存储在哪里?

来自分类Dev

Firefox可以在哪里存储缓存的Flash(.flv)视频文件?

来自分类Dev

cacheFactory在哪里存储数据?我们如何看到缓存的数据?

Related 相关文章

  1. 1

    Android在哪里存储缓存的数据?

  2. 2

    播放框架缓存存储在哪里?

  3. 3

    AngularJS在哪里存储缓存数据

  4. 4

    Knitr缓存的输出存储在哪里?

  5. 5

    AngularJS在哪里存储缓存数据

  6. 6

    播放框架缓存存储在哪里?

  7. 7

    juju在哪里存储其缓存

  8. 8

    AngularJS HTTP在缓存对象时将对象存储在哪里?

  9. 9

    Ubuntu在哪里存储用于接口编号的MAC地址缓存?

  10. 10

    存储的wheel.whl缓存文件在哪里?

  11. 11

    在Cloud Run中将共享的缓存对象存储在哪里?

  12. 12

    WordPress缓存功能在哪里存储数据?

  13. 13

    Ubuntu在哪里存储用于接口编号的MAC地址缓存?

  14. 14

    Ubuntu 中存储的缓存 python 包在哪里?

  15. 15

    时间在哪里缓存

  16. 16

    “死” DNS条目的异常缓存;此缓存存储在哪里?

  17. 17

    JSESSIONID存储在哪里?

  18. 18

    枚举存储在哪里?

  19. 19

    JSESSIONID存储在哪里?

  20. 20

    Firefox缓存在哪里?

  21. 21

    在多个程序包中使用缓存时,应在哪里将Cache Connection Manager的CAW文件存储在哪里?

  22. 22

    在多个程序包中使用缓存时,应在哪里将Cache Connection Manager的CAW文件存储在哪里?

  23. 23

    Plex媒体服务器在哪里存储其缓存/设置?

  24. 24

    浏览器的HTTP缓存的存储位置在哪里?磁盘或内存

  25. 25

    Plex媒体服务器在哪里存储其缓存/设置?

  26. 26

    客户端的HTML5应用程序缓存文件存储在哪里?

  27. 27

    Google Chrome浏览器中的Youtube视频缓存存储在哪里?

  28. 28

    Firefox可以在哪里存储缓存的Flash(.flv)视频文件?

  29. 29

    cacheFactory在哪里存储数据?我们如何看到缓存的数据?

热门标签

归档