python 用 switch case 也能做到这个程度啊,里面肯定有些黑魔法...
刚下好 py3 代码... 还有就是 python 是否有 inline caching? 这个影响也很大的。
python3 里 direct threading 肯定是开了的。
因为
if (x != NULL) DISPATCH();
break;
然后那个 DISPATCH()
其实可以是 goto *ip++
(incr instruction pointer, goto next instruction)刚看了下 rsa gem, 除非你装不上 openssl, 否则没必要用...
#16 楼 @bhuztez 好吧其实 ruby 的实现也 pop 的
你确定 python 没开 threading? 在解释器中很基本的... switch..case 的状态也可以做 threading 的。
cachegrind 一下比较下 cache miss 比率大致可以猜出有没有做 threading :
valgrind --tool=cachegrind --cachegrind-out-file=/tmp/rb ruby fib.rb
==49280==
==49280== I refs: 10,237,483,293
==49280== I1 misses: 397,866
==49280== LLi misses: 9,631
==49280== I1 miss rate: 0.00%
==49280== LLi miss rate: 0.00%
==49280==
==49280== D refs: 4,846,225,267 (2,980,702,999 rd + 1,865,522,268 wr)
==49280== D1 misses: 456,388 ( 344,239 rd + 112,149 wr)
==49280== LLd misses: 66,417 ( 11,651 rd + 54,766 wr)
==49280== D1 miss rate: 0.0% ( 0.0% + 0.0% )
==49280== LLd miss rate: 0.0% ( 0.0% + 0.0% )
==49280==
==49280== LL refs: 854,254 ( 742,105 rd + 112,149 wr)
==49280== LL misses: 76,048 ( 21,282 rd + 54,766 wr)
==49280== LL miss rate: 0.0% ( 0.0% + 0.0% )
主要看 LL miss
openssl 的话
OpenSSL::PKey::RSA.generate(256).public_key.to_pem
就可以了
没用过,有 to_der
或者 to_pem
方法吗?
加了好多特化指令的结果... 你可以把 trace 的编译参数关掉看到可以更快点
require 'benchmark'
iseq = RubyVM::InstructionSequence.compile\
<<-RUBY, __FILE__, '.', 0, trace_instruction: false
def fib n
if n < 2
1
else
fib(n - 1) + fib(n - 2)
end
end
RUBY
iseq.eval
Benchmark.bm{|bm| bm.report{puts fib(35)}}
#12 楼 @CoffeeDeveloper 比上不足比下有余的状态吧,就是看见些只会 js 没写过几行代码的说 js 最好就让人火大。还有你列的那些特性除了 4, 在 C++/C# 里都是小菜一碟,而且大部分静态语言除了 Java 都能做运算符重载,js 偏偏就不行。
post 完 redirect 了,浏览器就再发个请求到转向后的页面,很正常吧...
#2 楼 @hooopo mail attachment 其实使用 multipart 的方式传输的,显示在底部是某些客户端的做法,现在的主流客户端基本都能显示了吧。其实 part 的顺序是没关系的,附件可以排到邮件正体的前面。
如你给的链接的回复所说,如果一个图片对应的那一 part 加了 Content-Location, 那么在邮件中引用那个 Location 的 html 可以直接显示该图片而且不显示成附件 (在 Content-Disposition 里带 filename 就成为附件了)
...
—BoundarykkJ0CDXe4jYnH95C
Content-Type: image/png
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Location: http://example.com/images/logo.png
图片内容
—BoundarykkJ0CDXe4jYnH95C
...
放到邮件附件中
推荐两个超欢乐的 B 级片:
还有某喜欢客串鸡鸡爆炸而死的角色的导演:
还有很黄很暴力看完很伤心的:
速度不是问题,读写属性方法有特化指令去优化的 但拦截是 corner case, 没必要优先考虑
问题是:你要不要暴露这个属性,不要就 @
, 要就两种写法没区别。如果不能确定一个东西该有还是不该有,那就先删掉它。
再附带学习点颜色理论,取色就再也不用愁了
#17 楼 正解
#19 楼 @blacktulip ... combination 和 permutation 很正常吧,标准库连矩阵 QR 分解,LUP 分解都有 API
那个 regexp 类型是 js 的,很多事情都做不来,不如存字符串
现在还有人用 aptana 么...
\&
是代入 $&
, 相当于 \0
...
除了 \1
, \2
, \k<group>
, 会代入的就下面这几个了:
$` -- \` 匹配前
$& -- \0, \& 匹配中
$' -- \' 匹配后
你说的 console 是 rails console 么?
大概 markdown 引擎配置项不一样或者前一个测试改了什么东西...
不一样在什么地方能打出来看看么?
可以选些功能比较素的,功能多大全的很难和别的东西整合...