MoonBit月兔编程语言 现代编程思想 第十四课 案例:堆栈虚拟机
已知源程序与解释器,进⾏部分运算,获得⽬标程序 ⽬标程序 x 输⼊数据 -> 输出数据 2 虚拟机 ⼀处编写,处处运⾏ 定义⼀个不基于任何平台的指令集 在不同平台上实现解释器 两种常⻅的虚拟机 堆栈虚拟机:运算数存储在栈上,数据遵循先进后出原则 寄存器虚拟机:运算数存储在寄存器中 3 寄存器虚拟机 例:Lua VM (The Implementation of Lua 5.0) 取最⼤值 JUMP -> 5 (4 + 1) MOVE 2 1 0 ; R(2) = R(1) RETURN 2 2 0 ; return R(2) RETURN 0 1 0 ; return 4 堆栈虚拟机 例:WebAssembly Virtual Machine 取最⼤值 fn max(a : Int, b : Int) -> Int 1. local.get $a local.set 当前执⾏的指令 分为普通指令和控制指令(如函数结束时的返回) 24 解释器结构 1. enum StackValue { 2. Val(Value) // 普通数值 3. // 函数堆栈,存放本地变量及剩余指令 4. Func(@map.Map[String, Value], List[AdministrativeInstruction]) 5. } 6. 7. enum0 码力 | 31 页 | 594.38 KB | 1 年前3OpenShift Container Platform 4.10 监控
10 监控 在 OpenShift Container Platform 中配置和使用监控堆栈 Last Updated: 2023-10-17 OpenShift Container Platform 4.10 监控 在 OpenShift Container Platform 中配置和使用监控堆栈 法律通告 法律通告 Copyright © 2023 Red Hat, Inc. The property of their respective owners. 摘要 摘要 本文提供有关在 OpenShift Container Platform 中配置和使用 Prometheus 监控堆栈的说明。 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . CONTAINER PLATFORM 监控 1.2. 了解监控堆栈 1.3. OPENSHIFT CONTAINER PLATFORM 监控的常见术语表 1.4. 其他资源 1.5. 后续步骤 第 第 2 章 章 配置 配置监 监控堆 控堆栈 栈 2.1. 先决条件 2.2. 对监控的维护和支持 2.3. 准备配置监控堆栈 2.4. 配置监控堆栈 2.5. 可配置的监控组件 2.6. 使用节点选择器移动监控组件0 码力 | 135 页 | 1.58 MB | 1 年前3简明 X86 汇编语言教程
..21 3.5 关于保护模式中内存操作的一点说明.................................................................22 3.6 堆栈................................................................................................... I 也可以被装入任意 的数值,但通常没有人把它当作通用寄存器来用。DS 是默认段寄存器或选择器。 EBP 32-bit 宽 这也是一个作为指针的寄存器。通常,它被高级语言编译器用以建造‘堆栈帧’来 保存函数或过程的局部变量,不过,还是那句话,你可以在其中保存你希望的任何 数据。SS 是它的默认段寄存器或选择器。 注意,这三个寄存器没有对应的 8-bit 分组。换言之,你可以通过 默认情况下都用它指定操作段(实模式)或 内存(作为选择器,在保护模式。这个寄存器可以被装入任意数值,然而在这么做 的时候需要小心一些。方法是,首先把数据送给 AX,然后再把它从 AX 传送给 DS(当 然,也可以通过堆栈来做). ES 附加段,或附加选择器。这个寄存器的低 16 bit 连同 EDI 一同指向的指令将要处 理的内存。同样的,这个寄存器可以被装入任意数值,方法和 DS 类似。 FS F 段或0 码力 | 63 页 | 598.28 KB | 1 年前3MoonBit月兔编程语言 现代编程思想 第六课 泛型与高阶函数
函数、泛型、⾼阶函数、接⼝…… 2 泛型函数与泛型数据 3 堆栈 栈是⼀个由⼀系列对象组成的⼀个集合,这些对象的插⼊和删除遵循后进先出原则 (Last In First Out) 4 堆栈 我们定义以下操作,以存储整数的堆栈 IntStack 为例 1. empty: () -> IntStack // 创建新的堆栈 2. push : (Int, IntStack) -> IntStack IntStack // 将新的元素加⼊栈顶 3. pop: IntStack -> (Option[Int], IntStack) // 从堆栈取出元素 5 整数堆栈 我们实现整数堆栈的定义 self 关键字允许我们链式调⽤: IntStack::empty().push(1).pop() 1. enum IntStack { 2. Empty 3. NonEmpty(Int, IntStack) => (None, Empty) 10. NonEmpty(top, rest) => (Some(top), rest) 11. } 12. } 事实上,⽉兔中的列表就是⼀个堆栈 6 字符串堆栈 除了存储整数,我们也会希望存储字符串 1. enum StringStack { 2. Empty 3. NonEmpty(String, StringStack) 4. }0 码力 | 27 页 | 2.56 MB | 1 年前3快速部署高可用的Apache RocketMQ 集群 - Amazon S3
..................................................................... 7 启动 AMAZON CLOUDFORMATION 堆栈 ................................................................................................ 7 (宁夏)区域或由光环 新网运营的亚马逊云科技(北京)区域中部署该解决方案,您可以使用以下链接快速 启动一个 Amazon CloudFormation 堆栈来部署和管理整个方案: 启动 Amazon CloudFormation 堆栈 单击以下按钮,在相应区域的控制台部署 Amazon CloudFormation 模板。 选项 1 部署 Apache RocketMQ 到新的 亚马逊云科技中国: 亚马逊云科技全球: 亚马逊云科技全球: Page 8 of 21 配置部署参数 ⾃定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了⽹络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新0 码力 | 21 页 | 2.57 MB | 1 年前3Apache RocketMQ on Amazon Web Services
..................................................................... 6 启动 AMAZON CLOUDFORMATION 堆栈.................................................................................................. 6 或由光环新网运营的 AMAZON WEB SERVICES(北京)区域中部署该解决方案,您可以 使用以下链接快速启动一个 AMAZON CloudFormation 堆栈来部署和管理整个方案: 启动 AMAZON CloudFormation 堆栈 单击以下按钮,在相应区域的控制台部署 AMAZON CloudFormation 模板。 Page 7 of 18 选项 1 AMAZON WEB SERVICES 全球: 若您需要在 AMAZON WEB SERVICES 海外区域部署,请使用这个链接: 配置部署参数 自定义堆栈名称后,配置必填参数选项,并且根据需求调整已有默认值的选项。以下 为详细的参数解释。两个选项除了网络配置不同以外,其他配置都是相同的。 选项 1:⽤于将 Apache RocketMQ 部署到新0 码力 | 18 页 | 1.55 MB | 1 年前32022年美团技术年货 合辑
的导出符号有两个:JNI_OnLoad 和 Java_com_exam- ple_MainActivity_stringFromJNI。 解析崩溃堆栈 本文的优化方案会移除非必要导出的动态符号,那 so 如果发生崩溃的话是不是就无 法解析崩溃堆栈了呢?答案是完全不会影响崩溃堆栈的解析结果。 “so 可优化内容分析”一节已经提过,使用带调试信息和符号表的 so 解析线上崩溃, 是分析 so 崩溃的标准方式(这也是 崩溃的标准方式(这也是 Google 解析 so 崩溃的方式)。本文的优化方案 并未修改调试信息和符号表,所以可以使用带调试信息和符号表的 so 对崩溃堆栈进 行完整的还原,解析出崩溃堆栈每个栈帧对应的源码文件、行号和函数名等信息。业 务编译出 release 版的 so 后将相应的带调试信息和符号表的 so 上传到 crash 平台 即可。 6. 方案收益 优化 so 对安装包体积和安装后占用的本地存储空间有直接收益,收益大小取决于原 ○ 上报判断: ○ 判断链路标识:无标识时,进行兜底的日志上报,防止日志丢失。 ○ 判断上报方式:有标识时,支持日志和 RPC 中转两种上报方式。 ○ 日志组装:实现参数占位、异常堆栈输出等功能,并将相关数据组装为 Trace 对象,便于进行统一的收集和处理。 ○ 异常上报:通过 ErrorAPI 主动上报异常,兼容原日志上报中 ErrorAp- pender。 ○0 码力 | 1356 页 | 45.90 MB | 1 年前3Object Pascal 参考手册(Ver 0.1)
78 - 因为常量字符串被当作全局常量进行分配,所以你能使用常量字符串来初始化一个 PChar 常量: const WarningStr: PChar = 'Warning!'; 局部变量(在堆栈中分配)和动态变量(在堆中分配)的地址不能赋给指针常量。 Procedures and functions - 79 - Procedures and functions(过程和函数) 调用约定决定了参数被传递给例程的顺序,它们也影响从堆栈中删除参数、传递参数时寄存器的使用, 以及错误和异常处理。默认的调用约定是 register。 • register 和 pascal 调用从左到右传递参数,也就是说,最左边的参数最早被计算并传递,最右边的 参数最后被计算和传递;cdecl、stdcall 和 safecall 调用从右到左传递参数; • 除了 cdecl 调用,过程和函数在返回之前从堆栈中移除参数,而使用 用 cdecl,当调用返回时,调用者 从堆栈中移除参数; • register 调用能使用多达 3 个 CPU 寄存器传递参数,而其它调用则全部使用堆栈传递参数; • safecall 调用实现了异常“防火墙”,在 Windows 下,它实现了进程间 COM 错误通知。 下面的表格对调用约定进行了总结: 指示字 参数顺序 Clean-up 使用寄存器传递参数? register0 码力 | 168 页 | 868.25 KB | 1 年前3以外部模式部署OpenShift Container Storage
CONTAINER STORAGE 6.1. 以外部模式卸载 OPENSHIFT CONTAINER STORAGE 6.2. 从 OPENSHIFT CONTAINER STORAGE 中删除监控堆栈 6.3. 从 OPENSHIFT CONTAINER STORAGE 中删除 OPENSHIFT CONTAINER PLATFORM REGISTRY 6.4. 从 OPENSHIFT CONTAINER OBC。 a. 使用 OpenShift Container Storage 删除 OpenShift Container Platform 监控堆栈 PVC。 请查看 第 6.2 节 “从 OpenShift Container Storage 中删除监控堆栈” b. 使用 OpenShift Container Storage 删除 OpenShift Container Platform Registry CONTAINER STORAGE 中删除监控堆栈 使用本节清理 OpenShift Container Storage 中的监控堆栈。 在配置监控堆栈时创建的 PVC 位于 openshift-monitoring 命名空间中。 先决条件 先决条件 PVC 被配置为使用 OpenShift Container Platform 监控堆栈。 如需更多信息,请参阅配置监控堆栈。 流程 流程 1. 列出当前在0 码力 | 29 页 | 738.90 KB | 1 年前322-云原生的缘起、云原生底座、PaaS 以及 Service Mesh 等之道-高磊
现在 Node A 业务逻辑 熔断器 服务发现 网络堆栈 Node B 业务逻辑 熔断器 服务发现 网络堆栈 Node A 业务逻辑 网络堆栈 Node B 业务逻辑 网络堆栈 熔断器 服务发现 熔断器 服务发现 SideCar SideCar Node A 业务逻辑 网络堆栈 Node B 业务逻辑 网络堆栈 熔断器 服务发现 熔断器 服务发现 SideCar SideCar0 码力 | 42 页 | 11.17 MB | 5 月前3
共 215 条
- 1
- 2
- 3
- 4
- 5
- 6
- 22