我测试了我在Linux上网本上使用VisualVM 1.3.7 编写的Java光线跟踪器的性能.我用剖面仪测量.
为了好玩,我测试了使用getter和setter以及直接访问字段之间的区别.getter和setter是标准代码,没有添加.
我没想到会有任何分歧.但直接访问代码的速度较慢.
这是我在Vector3D中测试的样本:
public float dot(Vector3D other) {
return x * other.x + y * other.y + z * other.z;
}
Run Code Online (Sandbox Code Playgroud)
时间:1542毫秒/ 1,000,000次调用
public float dot(Vector3D other) {
return getX() * other.getX() + getY() * other.getY() + getZ() * other.getZ();
}
Run Code Online (Sandbox Code Playgroud)
时间:1453毫秒/ 1,000,000次调用
我没有在微基准测试中测试它,而是在光线跟踪器中测试.我测试代码的方式:
我至少为这两个代码运行了20,000,000次调用.我关闭了任何我不需要的程序.我设置CPU的性能,所以我的CPU时钟是最大的.每时每刻.
第二个代码如何快6%?
我写了一些有用的Python代码,但是Pylint并不喜欢这个明星.它一直告诉我:
Used * or ** magic (star-args)
Run Code Online (Sandbox Code Playgroud)
没有明星可以编写我的代码吗?一些信息:我正在使用lxml ; self.xml是一个客观化的 XML文件.
@property
def version_string(self):
'''Return the version as a string.'''
try:
version_format = self.xml.version.get("format")
except AttributeError:
return None
version_values = (v.text for v in self.xml.version.v)
return version_format.format(*version_values)
Run Code Online (Sandbox Code Playgroud) “ v-model”指令要求使用与LHS有效的属性值。
触发该消息的示例是
<input v-model="foo() + bar()">
Run Code Online (Sandbox Code Playgroud)
LHS是什么意思?
在ArangoDB中我有一件事没有得到:
边缘集合和图形之间有什么区别?在哪种情况下我应该选择哪种?
有什么方法可以将 Go 中的新进程或线程提升为管理员吗?
它似乎ShellExecute()在 Go 中不可用,并且不可能使用CreateProcess(). 我不知道还有什么可能。