#9 楼 @jinleileiking 没,时常要研究其源码,业余爱好而已。准备看看 yavm 这块,看看 jit 到底难在哪。
一直没机会开发过有大量用户量的 rails 站点,希望有机会学习一下。
我的理解,浅拷只拷到第一层内置变量。 class Klass attr_accessor :str end 上面这个 str 是方法,不是变量。
变量是这样的,比如 RString 中的 ptr
struct RString {
653 struct RBasic basic;
654 union {
655 struct {
656 long len;
657 char *ptr;
658 union {
659 long capa;
660 VALUE shared;
661 } aux;
662 } heap;
663 char ary[RSTRING_EMBED_LEN_MAX + 1];
664 } as;
665 };
1、内存不会有什么影响,指向是同一个对象。
2、 因为 [] 取不到值时会去取默认值, 而 fetch 会直接去取值,取不到就会抛异常。 没用 new(XX) 设置之前,默认值为 nil,所以也没啥想不通的。
1,2: 主要是为了性能。因为在 ruby 中,整数也是对象,但整数使用多,性能这关不好过。所以就特殊处理,如果是 32 位系统,高位为符号位,后 30-1 位为实际数值,0 位为标志,设为 1,这样保证了其 VALUE 为奇数,不会与 malloc 出来的指针重合。这样 30 位内的整数就速度很快了。 转换关系是这样 数字,object_id >> 1 比如 3 就是 1,5 就是 2
false,true,nil 这些因为奇数被占了,就只好用偶数了,malloc 也不会出现这些值,所以也不会与 VALUE 重合。
3:能占的都被占了,字母也分不到了,再说这个属于 String 范围了。
4:object id 一样就是同一对象。
自从用了 ruby.taobao.org 就没觉得慢了,感谢 taobao 啊。
你不觉得这边话题比那边多得多吗,火热一些自然话题就广。 说到务实,论坛都是我们这边自己开发的,他们有本事自己写啊,真是的,典型的外国月亮圆。
我曾经发过一个誓,再也不折腾 linux 的 gui。一堆 gui,gnome,kde,xfce。。。,就是没一个好用的,真是一堆垃圾啊,合起来做 1,2 个好用的不行吗。
vmware/colinux+putty+sublime
楼上根本离题,人家已标明是 fedora,而且 ruby1.87 那写着是 i386-linux.
@wayne0225 新手吧,1.8.7 就别用了,直接用 rvm 装 1.9.3 吧。
form_for(:session, url => sessions_path)
你确定不是这里少写了个 s, 是 sessions_path,非 session_path
把你的 view 代码看一下。
Instance methods errors