英语法语西班牙语

Ad


OnWorks 网站图标

makepp_sandboxes - 云端在线

通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器在 OnWorks 免费托管服务提供商中运行 makepp_sandboxes

这是命令 makepp_sandboxes 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

您的姓名


makepp_sandboxes -- 如何对 makepp 构建进行分区

商品描述


D: --做构建,
--不要构建,
——别读,
--做阅读, I: --在沙盒中,
--沙盒内, O: -- 沙盒外, S: --沙盒,
--沙盒警告,
--沙盒警告, V: --虚拟沙盒

您可能希望为 makepp 对文件树进行分区的原因有几个
建立:

1. 如果您知道树的大部分不受对
自上次构建以来的源文件,那么您可以告诉 makepp 假设文件
在树的那些部分已经是最新的,这意味着甚至没有隐含
加载它们的 makefile,更不用说计算和检查它们的依赖关系了。 (笔记
但是,显式加载的 makefile 仍会加载。)

2.如果你有多个makepp进程访问同一棵树,那么你想提高
如果您检测到两个并发进程正在写入同一部分
树,或者一个进程正在读取并发进程所在的树的一部分
写作。 无论哪种方式,您都有一个竞争条件,其中事件的相对顺序
在两个并发进程中(无法保证)可能会影响结果。

Makepp 的沙箱工具可以解决这两个问题。

沙箱 附加选项
以下 makepp 选项可用于设置子树的沙箱属性
及其所有文件和潜在文件:

--不要构建
--做构建
设置或重置“dont-build”属性。 假定具有此属性集的任何文件
已经是最新的,并且不会执行任何构建检查。 默认已重置
(即“do-build”),除非你有一个“RootMakeppfile”,在这种情况下一切
在其子树 ID“dont-build”之外。

--沙盒
--在沙盒中
--inside-沙盒
-- 沙盒外
设置或重置“in-sandbox”属性。 如果 makepp 否则会引发错误
用这个属性重置写一个文件。 仍会执行构建检查,除非
还设置了“dont-build”属性。 默认设置(即“沙盒内”),除非
有任何 --沙盒 选项,在这种情况下,所有其他文件的默认值是
重置(即“沙盒外”)。

--沙盒警告
--沙盒警告
将违反“沙盒内”和“不阅读”的行为降级为警告而不是错误。
当有数百个违规时,这很有用,以便您可以收集所有
它们在一次运行中并采取适当的纠正措施。 否则,你只能看到
每次 makepp 调用发生一次违规,直到您不知道还剩下多少
他们都是固定的。

--别读
--做-阅读
设置或重置“dont-read”属性。 如果 makepp 否则会引发错误
读取具有此属性集的文件。 默认为重置(即“do-read”)。

--虚拟沙盒
不要重写不是由这个 makepp 进程创建的文件的构建信息。 这个
在运行具有重叠沙箱的并发 makepp 进程时很有用,并且您
确定没有两个进程会尝试构建相同的目标。 马克普将
然后避免缓存有关它读取的文件的附加信息,因为
可能还有其他并发读者。

这 3 个属性中的每一个都适用于整个子树,包括不适用的文件
还存在。 更具体的路径覆盖不太具体的路径。 指定的路径可能是
单个文件,即使该文件尚不存在。

如果在完全相同的路径上设置和重置属性,则出现的选项
命令行最右边的优先。

沙箱 促进
如果您想防止 makepp 浪费时间处理您已经知道的文件
最新的(特别是由 makepp 以外的构建工具生成的文件),
然后 --不要构建 是您的选择。

到目前为止,这种优化最常见的情况是你知道一切都不是
位于或低于起始目录的已经是最新的。 这可以传达给
makepp 使用“--不要构建 /. --做构建 .".

沙箱 同时 流程
一种可以减少构建延迟的技术是让多个 makepp 进程工作
在同一棵树上。 这比使用 -j 选项,
但它也可以更有效,因为:

· 使用沙箱,进程可以在多个主机上运行,​​例如,通过作业
排队系统。 增加 -j limit 最终会耗尽一个的 CPU 资源
单个主机,甚至可能由于过多的进程分叉而减慢构建速度。

· -j 目前没有并行化一些 makepp 的耗时任务,例如加载
生成文件,扫描,在扫描和检查时构建隐式依赖项
依赖性。

这种方法的最大风险是构建可能变得不确定,如果
可能并发的进程彼此交互。 这导致构建系统
偶尔会产生不正确的结果,并且没有简单的机制来确定原因
它发生了。

为了解决这个风险,建议在并发进程之间对树进行分区
这样如果任何进程不正确地访问文件系统,那么错误是
立即确定性地提出。 通常,这是通过分配给每个
并发进程是一个允许写入的“沙箱”,其中没有
两个并发进程可能会重叠。

此外,每个进程都标记了任何其他可能并发的进程的沙箱
如“不读”。 如果一个进程读取另一个并发进程负责的文件
对于写入(因此可能尚未写入),则会引发错误
立即。

沙箱 顺序 流程
当为并发 makepp 进程对构建进行分区时,通常还有一个
各对进程之间的顺序关系。 例如,可能有一个
十几个并发编译进程,然后是一个无法启动的链接进程
直到所有编译过程完成。 这种顺序关系必须是
由编排各种 makepp 进程的任何机制强制执行(例如,
作业排队系统)。

当进程具有已知的顺序关系时,通常不需要提出
当他们访问树的同一部分时出错,因为结果仍然是
确定性的。

但是,指定通常是有益的 --不要构建 受抚养人的选择
进程(我们示例中的链接进程)通知它已经存在的区域
由先决条件进程(我们示例中的编译作业)更新。 在这
的方式,我们避免了大部分不必要的空构建目标的工作,这些工作只是
更新。

使用 onworks.net 服务在线使用 makepp_sandboxes


免费服务器和工作站

下载 Windows 和 Linux 应用程序

  • 1
    括号
    括号
    Brackets 是一个免费的现代开源软件
    专为 Web 打造的文本编辑器
    发展。 用 HTML、CSS 和
    带有专注可视化工具的 JavaScript 和
    准备...
    下载支架
  • 2
    免费的pascal编译器
    免费的pascal编译器
    一个 32/64/16 位 Pascal 编译器,用于
    Win32/64/CE、Linux、Mac OS X/iOS、
    Android、FreeBSD、OS/2、Game Boy
    Advance、任天堂 NDS 和 DOS;
    语义兼容...
    下载免费的 Pascal 编译器
  • 3
    佳能 EOS 数码信息
    佳能 EOS 数码信息
    佳能没有快门计数
    包含在一个的EXIF信息中
    图像文件,而不是尼康和
    宾得。 没有基于佳能的官方
    应用 ...
    下载佳能 EOS 数码信息
  • 4
    EFInd
    EFInd
    rEFInd 是 rEFIt 引导的一个分支
    经理。 像 rEFIt 一样,rEFInd 可以
    自动检测您安装的 EFI 启动
    loaders,它提供了一个漂亮的 GUI
    启动选项菜单...
    下载 rEFInd
  • 5
    快递卢克GSI
    快递卢克GSI
    这个 SourceForge 下载页面是为了
    授权用户下载我构建的源代码
    GSI,基于 phhusson 的伟大
    工作。 我构建了 Android Pie 和
    安卓 1...
    下载 ExpressLuke GSI
  • 6
    音乐播音员
    音乐播音员
    Music Caster 是一个托盘音乐播放器
    可以让您将本地音乐投射到
    Google Cast 设备。 在第一次运行时,
    你需要点击你的箭头
    塔...
    下载音乐播音员
  • 更多 ”

Linux 命令

Ad