- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 StackOverflow 的新手,正在寻找提示并帮助在 Windows 环境中调整 Pharo 5.0。
我的 PC 运行 Windows 10,CPU I5-4670K,频率为 4 Ghz,Plextor 512G SSD 作为加载和运行 Pharo 5.0 的 C 驱动器。
以下是我用来理解 Pharo 在性能和计算精度方面的行为的一组代码。
| x y |
x := 0.
y := 400000000.
[1 to: 2000000000 do: [ :i |
x := x + 0.2]] timeToRun
最佳答案
欢迎来到 SO(以及 smalltalk 标签!)
首先注意临时y
在这里没有发挥任何作用,因此我们可以将代码片段简化为
| x |
x := 0.
[1 to: 200000000 * 10 do: [ :i |
x := x + 0.2]] timeToRun
| x |
x := 0.
[1 to: 200000000 * 1 do: [ :i |
x := x + 0.2]] timeToRun
10
比第二个慢几倍的是前者中的块变量
i
从
SmallInteger
移动域到
LargeInteger
一。因此,每次块增加
i
, 当
i
已超越
SmallInteger
边界,加法
i := i + 1
这里发生的事情涉及
LargeInteger
算术,比
SmallInteger
慢一。
LargeInteger
算术发生?那么,计算我们只需要减去
SmallInteger maxVal
来自
200000000 * 10
:
(200000000 * 10) - SmallInteger maxVal = 926,258,177
i
执行该数量的操作。 .
| x |
x := 0.
[
10 timesRepeat: [1 to: 200000000 * 1 do: [ :i | x := x + 0.2]]
] timeToRun
10
1 次迭代速度的倍数。
LargeInteger
算术在 Pharo 中的表现很差。相反,Pharo 在使此类计算高效方面做得很好。
Integer
算术。事实上,如果你尝试在另一个没有 VM 支持的方言中做同样的事情
LargeInteger
您将不得不等待很长时间才能计算出结果。
关于performance-testing - Pharo 系统调整选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41991288/
四处查看图片并搜索“:=”不会产生很快弹出的相关结果。 赋值在 Pharo 图像中的具体位置以及如何实现? 最佳答案 赋值被翻译成字节码指令。对临时变量的赋值转换为 popIntoTemp:,它将当前
是否可以监听类在更改时抛出的事件?我需要知道系统浏览器中某些类中的某些内容(代码、变量等)何时发生变化。 最佳答案 注意,自 Pharo 2.0 以来,现在有一个 SystemAnnouncer 可以
我在 Pharo 中有一个 do: 需要很长时间来处理。我想向用户展示它的进度。这在 Pharo 中是如何完成的? 最佳答案 这里有两种方式: Collection 借鉴了 UIManager 并支持
在 Nautilus 系统浏览器 (Pharo 6) 中,有一个右键单击命令可以Add package... 以及 Add class... 甚至 Add protocol...,但我无法在任何地方找
有时,最好暂时使用已弃用的方法,而不是创建一个项目的多个分支来支持多个版本的 Pharo。至少,我有时就是这样做的。但是,调用已弃用的方法会使我的单元测试在 Pharo 3.0 中失败。 有什么我可以
我在网上查过 @ 的含义Pharo 中的接线员,但找不到任何东西。 Pharo是什么意思@运算符(operator)?例如,为什么25@50评估为:"(25@50)" ? 最佳答案 在 Smallta
我不明白如何创建我自己的 Slot 子类并在 Pharo 中使用它。问题是槽处理代码似乎需要我实现#size 和#index,但我不知道该放什么。 用例是表示配置的类的定义。用户可以指定部分配置,并依
我可能刚刚错过了它们,但我似乎在 Pharo 中找不到任何提及不可变数据结构的内容。来自函数式语言,我发现不可变 map 和 set 在各种场合都很有用。尽管 Pharo 对使用变异有特别的偏见,但如
我正在寻找一种方法,在给定包名称的情况下,加载该包在给定日期的最新版本。 例如: HypotheticalClassLoader loadPackage: 'Athens-Core' onDate:
使用 2.0入门,熟悉 Smalltalk,因此我在图像或“实例”一书中(已过时)找不到工具问题。 寻找输入字段(不是现成的对话框)。喜欢: (TextMorph new) contents: '(e
我正在查看 Pharo Smalltalk 的语法,并且想知道如何实现二进制消息的优先级。 如何声明这样的二进制消息? 系统如何确定一元消息的优先级? 最佳答案 用于实现二进制消息: 是的,例如,您可
对于Pharo的新手,如何创建一个包? MOOC exercise说“使用浏览器创建一个包”,但是如何? 最佳答案 您可以在 3.2 Creating a new Package in Pharo b
我关闭了标题为“Welcome to Pharo 2.0”的工作区。如何再次打开它? 最佳答案 尝试打开一个新的空白工作区并使用右上角的三角形转到“以前的内容”条目。您应该在那里找到默认的“欢迎使用
想要尝试使用 Bloc(基本最低要求:创建一个 BlElement),按照基本说明获取包 here : Metacello new baseline: 'Bloc'; repository
我有一个 C 函数,它将字符串复制到传递给它的缓冲区中: void get_machine(char *buf) { /* do something to acquire the machin
我对法罗相当陌生。我正在运行 Ubuntu Raring Ringtail (13.04) 并使用 Pharo 网站上推荐的 PPA 以及 Pharo 30218 图像,并希望启用中键功能。 (我有一
想要将我的小项目从 Pharo 5 迁移到 Pharo 6.1,当我右键单击我的包及其类时,我很高兴地找到了File Out 选项。我看到它为我的图像目录中的那些工件生成文本文件(我在 Windows
normalize: sum | strategy normalizingSum | strategy := sum collect: [ :each | each max: 0.0
为 Pharo 编写基于模拟的单元测试有哪些不同的选择?今天?各有什么优缺点? 最佳答案 还有Mocketry它提供了一个很好的 DSL 关于Pharo 模拟框架,我们在Stack Overflow上
我正在使用 PharoCloud 为我托管 Pharo 图像。默认情况下,它仅将图像的 ZIP 下载到我的设备;此 ZIP 不包含 .sources 文件。 我正在尝试使用 ZnClient 手动下载
我是一名优秀的程序员,十分优秀!