- 浏览: 90977 次
- 性别:
- 来自: 北京
最新评论
-
lmxbitihero:
别忘了redis是写入磁盘的啊
Redis和Memcached在Ruby上的性能评测(1)——写入性能 -
inosin:
QuakeWang 写道有没有加上tcmalloc试试看效果? ...
ruby1.9各补丁性能评测 -
QuakeWang:
有没有加上tcmalloc试试看效果?
ruby1.9各补丁性能评测 -
cxh116:
好文章 学习了
Lighttpd配置返回状态码的方式 -
夜鸣猪:
挺好的,收藏之
Rails3 Route用法集锦
文章列表
ruby版本:
ruby1.9.3-p327
ruby1.9.3-p327 + rvm补丁集合
ruby1.9.3-p327 + falcon.diff
ruby1.9.3-p327 + falcon-gc.diff
rvm补丁集合:
测试中没有使用rvm,而是直接使用官方的ruby1.9.3-p327,所以只打了rvm补丁集合中的1、2、5、7、8、9这6个补丁
falcon的性能补丁:
其中 falcon.diff 和 falcon-gc.diff 的区别在于:
falcon.diff 是没有集成 backport-gc 补丁的,因为作者说他没有感到这个补丁带来任何的好处
falcon ...
switch/case syntaxes
(remember: Ruby uses "case" and "when"
where others use "switch" and "case"):
# Basically if/elsif/else (notice there's nothing
# after the word "case"):
[variable = ] case
when bool_condition
statements
when bool_co ...
Dovecot是一个开源的,为Linux/Unix-like系统提供IMAP,POP3服务的软件。主要是为了安全产生的,不管大小应用,Dovecot都是一个非常优秀的选择。它非常快,配置简单,不需要专业的管理员,而且它也非常节省内存。
以上是来自http://www.dovecot.org/官方的介绍。
下面我们来纪录记录一下它的安装:
这里我使用了CentOS系统自带的yum进行安装,安装非常简单,只需要一个包:dovecot
# yum install dovecot
就一切都搞定了
它的主要配置文件也只有一个,位于 /etc/dovecot.conf
base_dir = /v ...
上一篇我们测试了memcached和redis在ruby上的写入性能,这次我们来测试一下它们的单纯读取性能。
测试环境不变,代码只需要进行一点点修改
memcached测试代码:
require 'rubygems'
require 'memcached'
@cache = Memcached.new('localhost:11211')
100000.times do |i|
@cache.get "Test/#{rand(10000)}"
end
redis测试代码:
require 'rubygems'
require 'hiredis ...
因为memcached只支持String数据类型,所以本文只比较String,redis支持的其他数据类型不做评测,另外关闭了redis持久化特性!因为redis的持久化是另起后台任务进行,所以数据量小的时候不会对测试结果有明显影响。
测试环境:
引用REDHAT6.0 x86_64
Ruby Enterprise Edition version 1.8.7-2010.02
memcached 1.4.4
redis-2.4.6
Gems:
memcached(1.3.5)
hiredis (0.4.4)
相关配置:
memcached:-m 1024 -c 1024 -t 8
内存:1G ...
如何返回一个404状态码和404页面:
某些资源不相让用户直接访问,可以直接rewrite到一个404页面,例如:
url.rewrite = ( "^/download/(.*)\.(zip|rar)$" => "/404.htm" )
这样当用户直接访问download下的zip和rar文件时候就会看到一个404.htm的错误页面,但是这样做页面对了,浏览器取得的状态码却还是200,比如爬虫之类的爬到这个地址就会认为这个地址是有效的,怎么让用户能看到404页面,返回的状态码也是404呢?
url.rewrite = ( "^ ...
在nginx中打开gzip压缩:
gzip on;
gzip_min_length 1024;
gzip_buffers 4 8k;
gzip_types text/plain application/x-javascript text/css text/html application/xml;
一般情况,需要设置一下gzip_min_length的值,建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024
gzip_types:匹配MIME类型进行压缩,(无论是否指定)"te ...
查看各属性属性
$ lvdisplay
$ pvdisplay
$ vgdisplay
从某分区减掉一定空间:
需要先umount分区
查看分区被那些进程使用,得出的数字就是PID
$ fuser -m /www/
/www/: 11489c
$ ps -p 11489
结束掉PID为11489的进程
$ umount /www/
需要先缩减文件系统大小,再缩减lv大小
先检查一下文件系统状态:
$ e2fsck -f /dev/VolGroup00/www
将文件系统缩减为28G
$ resize2fs /dev/VolGroup00/www 28g
将lv缩减为2 ...
Class Account < ActiveRecord::Base
delegate :firstname, :to => :user
# firstname => user.firstname
delegate :firstname, :to => :user, :prefix => true
# user_firstname => user.firstname
delegate :firstname, :to => :user, :allow_nil => true, :pref ...
rack可以通过这种方式取得或修改参数:
request = Rack::Request.new(env)
params = request.params
但对于lighttpd+fcgi来说,只有post method有效,get无法通过此方式取得参数,如果时get请求,只能通过env["REQUEST_URI"]方式取得参数和修改参数
infobright安装:
需要boost 1.42 或更高版本,redhat自带的boost是1.41版本,所以需要下载个新的编译安装一下:
下载安装boost:http://www.boost.org/users/download/
cd boost_1_45_0
./bootstrap.sh --prefix=/usr/local/boost_1_45_0
./bjam install
export BOOST_ROOT=/usr/local/boost_1_45_0
echo "/usr/local/boost_1_45_0/lib" > /etc/ ...
近期我们的代码版本终于从老的CVS迁移到Git上,但提交历史不能丢掉,使用git的cvsimport工具真的很好使,记录一下:
yum安装的git需要安装:Git tools for importing CVS repositories:git-cvs
yum install git-cvs
源码编译安装的git则需要安装cvsps,下载地址:http://www.cobite.com/cvsps/
tar -zxvf cvsps-2.1.tar.gz
cd cvsps-2.1
make && make install
新建一个目录
mkdir test_proje ...
如果使用rails3,并想使用官方提倡的UJS方式,需要安装插件:
先在 Gemfile中加入一行:
gem 'jquery-rails', '>= 0.2.6'
然后运行安装:
$ bundle install
生成所需要的文件:
$ rails generate jquery:install
如果需要使用jQuery UI库,运行这句:
$ rails generate jquery:install --ui
另外可以在 config/application.rb 中加入这句:
config.action_view.javascript_expansions[:default ...
先安装 unixODBC
wget ftp://ftp.unixodbc.org/pub/unixODBC/unixODBC-2.3.0.tar.gz
./configure
make && make install
默认安装在 /usr/local/lib目录下
ini配置文件在 /usr/loca/etc 目录下
wget http://ibiblio.org/pub/Linux/ALPHA/freetds/stable/freetds-stable.tgz
./configure --with-unixodbc=/usr/local --with-tdsver ...
安装了rails3后,系统会自动安装23个gem包,比rails2时代的7个gem包大大有所增加,到底这些包都是做什么用的呢?下面让我们来看看:
rails2所包含的gem包:
activesupport
activerecord
rack
actionpack
actionmailer
activeresource
rails
rails3所包含的gem包:
abstract (1.0.0)
提供一个库可以在ruby中定义抽象方法。我们知道,ruby中是不提供抽象方法的,引入这个库之后,可以简单的创建抽象方法,有两种使用方式:
require 'abstract'
# 简 ...