我们主要使用 MikTeX/pdflatex 2.9。
我很好奇我们这里的部署方案是不是真的是最好的。我们的部署方式如下:
- 创建一个 miktex 2.9 系统,其中包含我们需要的软件包 - 将其放在所有用户都可以访问的网络驱动器上。
- 用户将全局系统复制到“本地”网络驱动器 - 即只有他们才有权访问的驱动器/目录。
- 需要额外软件包的用户向我发送软件包请求。我会更新全局系统 - 换句话说,回到步骤 1。
这很有效。但是,现在 IT 管理员抱怨重复的 MikTeX 系统是多余的,浪费存储空间(我以为“浪费存储空间”是过去的抱怨...)。
无论如何,当我将 MikTeX 放在全局区域并异步编译各种文档时,我会受到性能影响(对于我们的基本文档,单个用户 - 一次一个文档的配置 - 每个文档约 1-10 秒,多用户/异步/多个文档运行 - 每个文档约 40-60 秒)。
难道 MikTeX/pdflatex 不一定是一个多用户程序(并且可能从来没有打算这样做?)。
或者是否存在我不知道的多用户配置?MikTeX 项目的文档表明用户应该获取自己的 MikTeX 本地副本 - 我认为这与我们当前的部署类似。
可能是 MikTeX/pdflatex 更新/访问了注册表?我刚刚注意到,在运行过程中 TeX 系统中的任何内容都没有更新,但注册表似乎已更新。MikTeX/pdflatex 会更新注册表吗?
DebugView 在运行期间显示以下内容:
00000676 3.65671015 [9500] 608 [pdflatex.core]: creating new file mapping object "jprogramtestmiktexmiktex.2.9plocaltexmfmiktexdataletexmf.fndb"
经过进一步测试:什么是文件映射对象?这是一个内存映射文件还是仅仅是对临时可读磁盘文件的引用?当我通过从一个会话多次调度 pdflatex 来测试“多用户”时,这会导致性能下降吗?虽然我编译了不同的 *.tex 文件,但它们使用相同的系统,然后使用相同的 *.fndb 文件。