这是一个主观问题,只是为了得到一般印象.由于Java是目前最流行的编程语言,因此它被用作基准.
让我们说我必须花费大量的时间/精力来学习/掌握Java.通过什么因素我应该乘以T来获得学习/掌握其他语言所需的时间/精力,比如C,C++,C#,python,perl,Lisp,Haskel,PHP?
我的猜测是:
0.5T PHP
0.9T python
1.1T C#
2.0T C++
3.0T C
Run Code Online (Sandbox Code Playgroud)
你怎么看?
你能解释一下,Ruby的减号运算符是如何工作的?不只是像5-2这样的小事.有点复杂 - 我们有2个带有ActiveRecord对象的数组:数组A = User.where(...)
,数组B = User.where(...)
,我想做A - B,它是如何工作的?它只是比较对象ID,或所有属性,还是其他?
我在 Hazelcast 上运行了一个简单的基准测试(使用JMH
),将它与Apache Ignite
. 这适用于单节点部署。
缓存配置保持默认,
final Config config = new Config();
return Hazelcast.newHazelcastInstance(config);
Run Code Online (Sandbox Code Playgroud)
我用put
和get
地图,
private IMap<Long, Customer> normalCache = hazelcast.getMap( CacheName.NORMAL.getCacheName());
public void saveToCache(Customer customer) {
normalCache.put(customer.getId(), customer);
}
Run Code Online (Sandbox Code Playgroud)
从结果来看,Ignite 似乎比 Hazelcast 快 3-4 倍。
我原以为差异会小得多。
对于 Ignite 和 Hazelcast,我都没有使用任何其他优化(靠近缓存等),只是使用默认配置(结果以 ops/sec、吞吐量为单位)。
这是预期的性能差异还是结果错误?
在检查两个字符串是否不区分大小写相等时,为什么这段代码
\nbool rangeV3WithTransformViews(std::string_view str1, std::string_view str2) {\n return equal(str1 | transform(tolowercase),\n str2 | transform(tolowercase));\n}\n
Run Code Online (Sandbox Code Playgroud)\n比这个慢很多吗?
\nbool rangeV3WithProj(std::string_view str1, std::string_view str2) {\n return equal(str1, str2, std::equal_to{}, tolowercase, tolowercase);\n}\n
Run Code Online (Sandbox Code Playgroud)\n从后面的代码中,GCC 13.2-O3
设法生成与低级 C 风格解决方案相同的汇编代码:
#define to_lower_ascii(c) (((c) >= \'A\' && (c) <= \'Z\') ? (c) + 32 : (c))\n\nint cstyle(const char* str1, const char* str2) {\n while (*str1 != \'\\0\' && *str2 != \'\\0\' && to_lower_ascii(*str1) == to_lower_ascii(*str2)) {\n str1++;\n str2++;\n }\n return to_lower_ascii(*str1) …
Run Code Online (Sandbox Code Playgroud) benchmarking ×4
activerecord ×1
c++ ×1
c++20 ×1
hazelcast ×1
ignite ×1
java ×1
performance ×1
range-v3 ×1
ruby ×1
time ×1