Ruby China
  • Topics
  • 招聘
  • Wiki
  • 酷站
  • Gems
  • Sign Up
  • Sign In
Zete
@luikore
VIP
NO. 2880 / 2012-07-16

55 Topics / 3422 Replies
245 Followers
6 Following
32 Favorites
GitHub Public Repos
  • triez 140

    fast, efficient, unicode aware HAT trie with prefix / suffix support for Ruby

  • rsec 78

    Parser / Regexp Combinator For Ruby

  • regexp_optimized_union 11

    Regexp.optimized_union(word_list, regexp_options) generates optimized regexp for matching union o...

  • zscan 9

    Improved string scanner

  • stimulus-bind 9

    Enable simple data binding for stimulusjs

  • vscode-hypertab 3

    The Missing Tab Completion for VS Code

  • property-list 1

    Property list (plist) library with all formats support

  • keycap 1

    1.5u keycap for Kailh low profile switch

  • ffi-clang 0

    Ruby FFI bindings for libclang 3.4+.

  • llvm-node 0

    Node LLVM 4.0+ Bindings

More on GitHub
  • Overview
  • Topics
  • Replies
  • Favorites
  • Following
  • Followers
  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #21 楼 @bhuztez

    python 用 switch case 也能做到这个程度啊,里面肯定有些黑魔法...

    刚下好 py3 代码... 还有就是 python 是否有 inline caching? 这个影响也很大的。

    python3 里 direct threading 肯定是开了的。

    因为

    1. 每个 opcode 的实现最后有个 if (x != NULL) DISPATCH(); break; 然后那个 DISPATCH() 其实可以是 goto *ip++ (incr instruction pointer, goto next instruction)
    2. opcode_targets.h 把各个 opcode 上边标签的内存地址取出来了,就是做 direct threading 用的。
  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #18 楼 @bhuztez

    这只能确定对 Visual C 没开 threading label 也没有放到数组中?搜下 &&BINARY_ADD ...

  • RSA gem 产生的 public key at July 23, 2013

    刚看了下 rsa gem, 除非你装不上 openssl, 否则没必要用...

  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #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

  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #14 楼 @bhuztez

    目测区别在 pop() 上

    ruby 的实现基本和 python 的一样,但没有 pop(), 而是带两个 operand 的 register machine 指令

  • RSA gem 产生的 public key at July 23, 2013

    #3 楼 @lulalala

    是的,pem 是 der base64 出来的,里面按 ASN.1 的结构保存算法,key 类型和数字

  • RSA gem 产生的 public key at July 23, 2013

    openssl 的话

    OpenSSL::PKey::RSA.generate(256).public_key.to_pem
    

    就可以了

  • RSA gem 产生的 public key at July 23, 2013

    没用过,有 to_der 或者 to_pem 方法吗?

  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #12 楼 @bhuztez

    这要看对应指令的实现,python 的实现可能只是改了下 calling convention, ruby 的 opt_plus 是把 fixnum / float / string / array 的加法 inline 进来了

  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    #10 楼 @bhuztez

    pypy 可以和 jruby 对比一下,两个 BDD (benchmark driven development) 产物...

    看指令:

    puts iseq.disasm
    

    左列是 offset, 表示偏离的 qword 数

    opt_plus 是常见方法的特化指令,1.9 加的,做整数运算大约是静态语言的一半速度了

    opt_send_simple 和 指令_OP_XXX 是 2.0 加进去的特化指令

  • [Benchmark] Ruby 2.0 真的快了不少,还是我的 Python 代码有问题? at July 23, 2013

    加了好多特化指令的结果... 你可以把 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)}}
    
  • 好久没讨论语言了 - 我只是路过 at July 22, 2013

    #12 楼 @CoffeeDeveloper 比上不足比下有余的状态吧,就是看见些只会 js 没写过几行代码的说 js 最好就让人火大。还有你列的那些特性除了 4, 在 C++/C# 里都是小菜一碟,而且大部分静态语言除了 Java 都能做运算符重载,js 偏偏就不行。

  • 网站图片设置防盗链,但邮件需要引用图片 at July 21, 2013

    #4 楼 @hooopo 哦用 cid 更好... rack 判断上传文件名的时候各种搞不定了也会用 content-id ...

  • 关于图片链接出现两次 request 的问题 at July 21, 2013

    post 完 redirect 了,浏览器就再发个请求到转向后的页面,很正常吧...

  • 网站图片设置防盗链,但邮件需要引用图片 at July 21, 2013

    #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
    ...
    
  • 网站图片设置防盗链,但邮件需要引用图片 at July 21, 2013

    放到邮件附件中

  • 有人用 Sublime Text 3 吗 at July 21, 2013

    #41 楼 @shatle

    set nobackup       " no *~ files
    set noswf          " no *.swap files
    
  • 面试后,如果面试公司不要面试者,需不需要通知面试者? at July 21, 2013

    #27 楼 @fsword 约定俗成最大化自己便利,和尽量浪费面试者时间么... 靠谱公司至少要告诉人家暂时没合适职位,不好意思说就发个邮件吧。

    "我们三年内会跟你联系的"...

  • 你看过的电影推荐 at July 20, 2013

    推荐两个超欢乐的 B 级片:

    • 带铁拳头的男人 (The man with the iron fist)
    • 独裁者 (The Dictator)

    还有某喜欢客串鸡鸡爆炸而死的角色的导演:

    • 奔放的强哥 (Django unchained)

    还有很黄很暴力看完很伤心的:

    • studio 4°C 的 剑风传奇黄金时代篇
  • 大家平时习惯怎么使用属性? at July 20, 2013

    速度不是问题,读写属性方法有特化指令去优化的 但拦截是 corner case, 没必要优先考虑

    问题是:你要不要暴露这个属性,不要就 @, 要就两种写法没区别。如果不能确定一个东西该有还是不该有,那就先删掉它。

  • 一个极其好用的取色网站 at July 20, 2013

    再附带学习点颜色理论,取色就再也不用愁了

    https://www.helpscout.net/blog/psychology-of-color/

  • 求教 [二维数组] at July 19, 2013

    #17 楼 正解

    #19 楼 @blacktulip ... combination 和 permutation 很正常吧,标准库连矩阵 QR 分解,LUP 分解都有 API

  • 如何把 正则表达式 存储到 mongodb 里面 (mongoid) at July 19, 2013

    那个 regexp 类型是 js 的,很多事情都做不来,不如存字符串

  • Aptana 控制台信息总是一晃就过去了,看不全怎么办 at July 19, 2013

    现在还有人用 aptana 么...

  • 巨坑爹的 String#gsub 方法 at July 19, 2013

    \& 是代入 $&, 相当于 \0 ...

    除了 \1, \2, \k<group> , 会代入的就下面这几个了:

    $` -- \` 匹配前
    $& -- \0, \& 匹配中
    $' -- \' 匹配后
    
  • 奇怪,在 console 里试验明明没问题,但是到了 rspec 中用例却失败了 at July 19, 2013

    你说的 console 是 rails console 么?

    大概 markdown 引擎配置项不一样或者前一个测试改了什么东西...

    不一样在什么地方能打出来看看么?

  • 听说 Struts 出大事了.. at July 18, 2013

    #23 楼 @tdseed #22 楼 @Rei

    ...不是戏服...

  • 求推荐 wiki 和 cms at July 18, 2013

    可以选些功能比较素的,功能多大全的很难和别的东西整合...

  • Prev
  • 1
  • 2
  • …
  • 61
  • 62
  • 63
  • 64
  • 65
  • …
  • 111
  • 112
  • Next
关于 / RubyConf / Ruby 镜像 / RubyGems 镜像 / 活跃会员 / 组织 / API / 贡献者
由众多爱好者共同维护的 Ruby 中文社区,本站使用 Homeland 构建,并采用 Docker 部署。
服务器由 赞助 CDN 由 赞助
iOS 客户端 / Android 客户端 简体中文 / English