- 浏览: 59259 次
- 性别:
- 来自: 深圳
最新评论
-
grandboy:
seekboy 写道内存如果不够大,没有装入所有索引,效率上相 ...
mongoDB性能初测与优化 -
seekboy:
内存如果不够大,没有装入所有索引,效率上相差还是挺多的
mongoDB性能初测与优化 -
forchenyun:
百万级别,mysql不是问题,建议你可以看看mongo的亿级别 ...
mongoDB vs mysql 性能对比测试 -
grandboy:
我一直担心的就是内存问题,好像没有办法限制内存大小,据说要求内 ...
mongoDB性能初测与优化 -
calvinlyc:
..........2个完全不同的东西,去比他干什么呢
mongoDB vs mysql 性能对比测试
文章列表
ruby 闭包能力的小例
- 博客分类:
- 优秀代码
C++的宏大家用得很开心,但可读性不太好。
宏就是代码级动态,非运行时,是非常有需求的!
Ruby的define_method和class_eval都有闭包能力。但有时可读性也不那么好,class_eval更是。
例子:
class Class
def plugin
class_eval do
def self.print
p 'inspect me!'
end
end
end
end
module Core
def plugin_d klass
define_si ...
freebsd常用命令
- 博客分类:
- Freebsd
==========
ipfiter
马上应用规则
ipf -Fa -f /etc/ipf.rules
ipfstat
========
sysinstall
/usr/sbin/sysinstall
========
设置网卡ip后马上生效
sh /etc/netstart
======
服务
脚本目录
/etc/rc.d
/usr/local/etc/rc.d
freebsd以强有力内核,安全稳定,同时方便的port系统也是最吸引人的地方。
不过,这两天用port遇到ruby版本的问题,好在port也是开放系统,略加研究就能搞定。同时对ports有了个很好的了解。
问题:
freebsd下的ruby总是默认用1.8,装gem也都是装到1.8下,而之前用port装的默认即为1.9,非常迷惑!而生产环境也必须要用1.9环境。
探索:
查看ruby-gems, ruby19下的makefile未发现有硬编码用ruby1.8的内容。找资料研究ports系统。ports本质还是unix下的makefile控制软件编 ...
freebsd下服务硬件性能测试
- 博客分类:
- Freebsd
freebsd用整体解决方案,简约内核打动我们。用它一个更大的理由是它出色的软件包管理。unix/linux下的免费软件远要比windows下的多,不论用port还是, pkg_add都是非常方便!
回到正题,任何东西只有能度量,才能进度。服务器硬 ...
freebsd以其简洁、高效、安全完全征服了我,相见恨晚。其气质就是有追求的程序一样,什么可以被清清楚楚,明明白白的看到,控制到。再也不用suse, redhat这些发行版,太花了。先从一个nice的内核开始!
===================
...
以前做过一个打包下发查询(从设备查询)的组件,再在基础上做策略,把应用软件的性能提升了1-2个数量级。
现在以数据库为中心的软件设计中,设计中除了要利用nosql数据库中schema-free这种特性外(长项)。应用层,还 ...
# require 'rails/all'
只留三个组件,test_unit在生产环境下,也可以不要!
require "action_controller/railtie"
require "action_mailer/railtie"
require "rails/test_unit/railtie"
去掉active_record, 和active_resource能节约一些内存,服务器软件一定尽量节约内存,因为我们还
开发环境
,mac系统
起动后 ...
textmate默认的光标移动是类似emacs的。 其实vim的快捷键很让人怀念。如左右上下的光标移动。还有dd, yy这些有意思的键。
但emace也非常不错!如ctrl+k, ctrl+e 都是容易让人记住的。
c-f : 向右移动光标
c-b : 向左移动光标
c-n : 向下移动光标
c-p : 向上移动光标
用不用方向键可以看出是不是真正的键族!
c - ← :移动一个单词向左
c-→ : 向右移动一个单词
这比用alt 加方向键要好用!
=========
ctrl + t :调换选中文本顺序,如果没 ...
写道
it "should load classes only once" do
autoload_dir "#{spec_dir}/only_once"
check = mock
check.should_receive(:loaded).once
ClassLoader.add_observer do |klass|
klass.name.should == "OnlyOnceSpec"
check.loaded
end
OnlyOnce ...
ruby动态语言可以做到不停机系统,就是升级部署不断服务!这是多么美好,像静态语言是做不到这一点。
要实现这一美妙、强大能力之前,要小心所以重入。在实践中发现一个bug,由重入造成的死循环!
def to_json_with_children(options={})
push_children_objects
to_json_without_children(options)
# to_json(options)
end
alias_method_chain :to_json, :children
上面代码两次重入,就会 ...
闭包的例子一般是在说ruby的块,特片是:访问本地变量和绑定运行上下文(很强大的两点)
nums = [10,3,22,34,17]
sum = 0
nums.each{|n| sum += n}
print sum
近来看mongoid的代码,发现define_method也能绑定运行上下文!
def getter(name, metadata)
tap do
define_method(name) do |*args|
reload, variable = args.first, "@#{name} ...
用mongo的ruby driver进行测试。
测试脚本见附件
测试基本结果:
| MONGO |
-----------------------------------------------------------
find_one,find_first x1000 | 0.223 |
find by id x1000 | 0.304 |
...
测试环境:
型号名称: iMac
处理器名称: Intel Core 2 Duo
处理器速度: 3.06 GHz
处理器数量: 1
总核心数: 2
L2 高速缓存: 3 MB
内存: 4 GB
总线速度: 1.07 GHz测试方案:
...
改造了一下AR的测试脚本(见附件),测试在大表下的AR全方位性能。
经过测试发现,有索引的情况下,ActiveRecord的CRDU都可以保证在0.1-1ms下完成。但在没有索引的情况下,遍历全表,就很意思了!
1. 遍历:一万条记录遍历在5-11ms, 在可用性范围内。但一百万条记录,在0.6-2s内,显示达不到可用性要求了。百万条记录查找一定要有索引。
2. 非平衡:对两张不同的表(记录数)相同,查找性能是截然不同的。 exhibit表里有大字段,查找性能就比user表差很多。
3. 非线性:随着纪录数增加,遍历查找性能下降(非线性下降)。由其是含有 ...
ctiveRecord在ruby 1.9.2和1.8.7下的性能测试测试方案:
1. AR自带性能测试方案:向mysql user表和关联表里插入一万条记录。AR3.0.4 运行lib/example目录下的performance.rb
2. AR自带性能测试方案:向mysql user表和关联表里插入一百万条记录。AR3.0.4 运行example目录下的performance.rb
测试目的:
1. 测试AR的new, create ,update, find, all, destroy, find_by_sql的性能.
2. 测试AR在1.9. ...