2009年6月23日火曜日

CPUコア 消費電力(TDP)比較 ATOM Corei7 Core2 Athlon64X2

サーバー構築/CPU選定
ATOM
Corei7
Core2 Duo Quad
Athlon X2
Athlon64 X2
------------------

自宅サーバーを作るのに、壊れにくい構成、24時間365日稼動なので電気代
も馬鹿にならないことを考えると省電力なマシンを作りたいものです。

特に発熱量の増大は、

①電解コンデンサの水の蒸発に起因する容量の低下により発生する動作の不安定化
②冷却ファンの回転数増大によるファンモーターの短命化
③埃が入ることで起こる冷却不良により熱暴走を起こし破損

といった大きな破壊要因になります。

また消費電力は、マシンが数百ワットにもなるとその電気代も馬鹿になりません。

たとえば400Wの高速マシンを24時間稼動しているとします。

400W x 24h x 365day = 3504000Wh = 3504kWh
3504kWh x 17.87円 = 62516.48円
(東京電力 従量電灯B契約 月120kWh以下の時 2009/6/23現在)

年間60000円となります。月5000円と考えると、
電気代だけで高速なレンタルサーバーを借りられるぐらいになります。
あまりにももったいない。

そこで、費用対効果を考えると省電力なサーバーが必要と私は考えます。

Intel ATOM 330 TDP 8W

がよさそうです。
デュアルコア、HyperThredingを使うと4プロセッサ相当になります。

早速
intel D945GCLF2 を買ってきて
XPを入れてみたところ、なかなか早い。。。

FreeBSDを入れるとどうなるでしょう。

-------------------------------
CPU別 消費電力(TDP)比較 おすすめCPUはどれだ?
 
Core i7 TDP 130W

Core2Quad Q6700 95W
Core2Quad Q6600 105W
Core2Quad Q9550 95W
Core2Quad Q9550s 65W
Core2Duo E6700 65W

AthronX2 5050e 45W


ATOM N280 TDP 2.5W
ATOM N270 TDP 2.5W
ATOM 230 TDP 4W
ATOM 330 TDP 8W

GeodeNX1750 14W
GeodeNX1500 6W
GeodeNX1250 6W

2009年6月12日金曜日

FreeBSD RTSP/RTP サーバーのインストール

[現在書きかけの文章です]

FreeBSD7.1
RTPS/RTP サーバー調査

FreeBSDで使えるRTPサーバーを調べる。


サーバー
Real Networks RealServer
Real Networks RealServerG2

これが、今は

HELIX SERVER v12

となっているらしい。
対応プラットフォームは、
Windows2003,Linux,Solaris(ネイティブ)

価格が
Helix Server 25 33万円~
Helix Server 100 82万円~
Helix Server Unlimited 214万円~

ありゃ。
趣味程度では使えませんねぇ。
30日間の無料トライアル版はあるらしい。


どちらにしてもFreeBSDは非対応か。。。

Real Media Servers


他はないのかな?

2009年4月29日水曜日

Realtek HD(High Definition) Audio モノラル音声がならない

WindowsXP
Realtek HD(High Definition) Audio
M2A-VM HDMI
M2A-VM
リアパネルLineOut出力 スピーカー2CH 
-----------
音が変なんです。
ニュース動画を見たりすると、ナレーションがこもっているような、お風呂場のように反響しているというか、水槽の中でしゃべっていると表現するのか、はたまたファミコンゲームの音みたいピコポコ音が重なっていると表現するのかうまく言い表しにくいのですが、サウンドデバイス上での話ならイコライザが利いているのかエフェクトが利いているのか、なんかそんな変な音がするのです。かといって、イコライザもエフェクトもすべてOFFにしているのですが全く改善しません。

ネット上でも同じ症状ではまっている人がいるようなのですが、さして気にしていない人もいますし、他のUSB接続の外付けスピーカーをつないだりして使っているようで、有用な解決方法がまったく見つかりません。

当然、最新ドライバにもしてみたのですが、いまだ解決策が見えません。
XPも再インストールしていますし、M2A-VMでもM2A-VM HDMIでもまったく同じ症状で、当然スピーカーを交換しても同じ症状。


ふと、音の定位がセンターぴったりに来ていると音が極端に小さくなっていることに気がつき、テスト用音声データを作って見るとやはりセンターに定位する音は全く鳴らないようです。


Realtek HD(High Definition) Audioを使っている人、この音声再生できますか?

音がやや大きいのでボリュームに気をつけてください。
[WAV]左右に音源が移動する
正常:同じ音量で音源が左右に移動する
異常:音源が中心から移動せず音量が上がったり無音になる

[WAV]Windows XP Startup モノラル音声
正常:Windows XP の起動時の音声が流れる
異常:何もならない 無音

『異常』に相当する方、他のPCで上記音声を再生してみてください。ちゃんと再生できるはずです。

きっとこれはRealtekのバグなんでしょうねぇ。


[2010.4.6 追記]

その後、勝手にこの症状が治っていました。
たぶんWindowsUpdateで治ったようなので、この症状が出ている人は、一度WindowsUpdateを完全にやってみてください。


.

2009年4月18日土曜日

FreeBSD7 JDK1.6インストール Java JDK1.6.0.3p4_10

FreeBSD 7.1/i386
----------------------------
Pentium2/400MHz
Memory 192M
コンパイル・インストール約8-10時間
----------------------------
■jdk1.6インストール けっこう面倒くさい(>_<"

javaをコンパイル実行するためにはjdkをインストールします。
しかしながら、javaのライセンス許諾のためにportsからのmake installだけではインストールできず、Sun Microsystemsより指定されたファイルをライセンス許諾した後で手動でダウンロードしなければなりません。
また、FreeBSD用のパッチも必要でこれも手動でライセンス許諾とダウンロードが必要です。

あと、コンパイルには
●2.5GByteの空きハードディスク領域(#duで確認)
●768MByte以上のスワップ領域(#pstat -sで確認)
が必要です。
私の場合、スワップ領域が足りずにコンパイル途中で止まってしまいました。

■自分でダウンロードするもの
ダウンロードに必要なファイルはコンパイル中に表示されますので、その文章中にあるファイルをダウンロードしてください。バージョンが代わればダウンロードするものもかわりますので以下の記載のままとは限りません。
ダウンロードしたファイルは
/usr/ports/distfiles/
に保存します。

●http://www.java.net/ より fetch でダウンロード
    jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
    jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
    jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
●http://java.sun.com/ より ブラウザを使ってダウンロード
    tzupdater-1_3_12-2009a.zip

●http://www.FreeBSDFoundation.org/ より ブラウザでダウンロード
    
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

●http://www.eyesbeyond.com/freebsddom/java/jdk16.html
 より ブラウザでダウンロード
    bsd-jdk16-patches-4.tar.bz2

後はmake install でインストールされます。

■jdk1.6インストール手順 実録(笑)
実際にmake install してみて、そのメッセージにしたがって必要なファイルをダウンロードしてきます。


#cd /usr/ports/java/jdk16
#make install
lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for jdk 1.6.0.3p4_10 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] DEBUG Enable debugging support x x
x x [ ] IPV6 Enable IPv6 support x x
x x [ ] WEB Enable the browser plugin and Java Web Start x x
x x [ ] POLICY Install the Unlimited Strength Policy Files x x
x x [X] TZUPDATE Update the time zone data x x
x x [ ] JAIL Port is being built within a jail x x
tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
IMPORTANT: To build the JDK 1.6.0 port, you should have at least
2.5Gb of free disk space in the build area!


Due to licensing restrictions, certain files must be fetched manually.

Please download the Update 3 Source from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
and the Source Binaries from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
and the Mozilla Headers from
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
.

Please open http://java.sun.com/javase/downloads/index.jsp
in a web browser and follow the "Download" link for
"JDK US DST Timezone Update Tool - 1_3_12" to obtain the
time zone update file, tzupdater-1_3_12-2009a.zip.

Please download the patchset, bsd-jdk16-patches-4.tar.bz2, from
http://www.eyesbeyond.com/freebsddom/java/jdk16.html.

Please place the downloaded file(s) in /usr/ports/distfiles
and restart the build.

*** Error code 1

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


てなことで、Sun Microsystemsよりファイルをダウンロードしてきなさいといわれましたのでlynxあたりでダウンロードを試みます。
lynxは先にインストールしておいてください。
    #cd /usr/ports/www/lynx
    #make install clean


#cd /usr/ports/distfiles
#fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
#fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
# fetch http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
# lynx http://java.sun.com/javase/downloads/index.jsp


JDK DST Timezone Update Tool - 1.3.12

The tzupdater tool is provided to allow the updating of installed JDK/JRE images with more recent
timezone data in order to accommodate the latest timezone changes. Learn more

Download<<-ここを[Enter]



Register Now[Enter]
必要事項(required)を記入し
submit[Enter]

IDとパスワードを入力して
Log In and Continue[Enter]

チェックを入れて
[X] I agree to the Java SE Timezone Updater License Agreement

continue[Enter]

ライセンスについての但し書きが表示されて

continue[Enter]

Java SE Timezone Updater 1.3.12
tzupdater-1_3_12-2009a.zip 0.25 MB [Enter]

Save to Disk[Enter]

ファイル名を確認して[Enter]

q
(linx終了)


ファイル名がおかしければ修正します。
tzupdater-1_3_12-2009a.zip

#lynx http://www.eyesbeyond.com/freebsddom/java/jdk16.html

download the latest BSD JDK 1.6.0 patchset [Enter]
ACCEPT [Enter]
save to disk [Enter]


次のファイルがあるか確認します。


#ll
-rw-r--r-- 1 root wheel 2116124 Feb 27 06:12 jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
-rw-r--r-- 1 root wheel 8608204 Feb 27 06:13 jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
-rw-r--r-- 1 root wheel 116791442 Feb 27 06:13 jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
-rw-r--r-- 1 root wheel 261842 Apr 18 12:09 tzupdater-1_3_12-2009a.zip
-rw-r--r-- 1 root wheel 960930 Apr 18 14:12 bsd-jdk16-patches-4.tar.bz2

#cd /usr/ports/java/jdk16
#make install clean

Do you agree to the above license terms? [yes or no] yes


待つこと10分?
何も表示がかわらないけど我慢。


lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for cups-base 1.3.9_3 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] GNUTLS Build with GNUTLS library x x
x x [ ] PHP Build PHP support x x
x x [ ] PYTHON Build PYTHON support x x
x x [ ] LIBPAPER Build with libpaper support x x
x x [ ] DNSSD Build with DNS_SD (avahi) support x x
x x [ ] PAM Build with PAM support x x
x x [ ] LDAP Build with LDAP support x x
x x [ ] DBUS Build with DBUS support x x
x x [ ] XDG_OPEN Build with XDG_OPEN as browser x x
x x tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj


"cups-base"とは"Common UNIX Printing System"で、
このもともとの名前は"cups-lpr"ということで、印刷用モジュールです。
とくにどの言語からもつかわないのでそのまま[OK]と


lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk
x Options for diablo-jdk 1.6.0.07.02_4 x
x lqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqk x
x x [ ] POLICY Install the Unlimited Strength Policy Files x x
x x [X] TZUPDATE Update the time zone data x x
tqmqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqjqu
x [ OK ] Cancel x
mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj

そのまま[OK]

===> Vulnerability check disabled, database not found
===> Found saved configuration for diablo-jdk-1.6.0.07.02_4

Because of licensing restrictions, you must fetch the distribution
manually.

Please access

http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

with a web browser and "Accept" the End User License Agreement for
"Caffe Diablo 1.6.0".

Please place the downloaded file(s) in /usr/ports/distfiles.

*** Error code 1

Stop in /usr/ports/java/diablo-jdk16.
*** Error code 1

Stop in /usr/ports/java/diablo-jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


おーーーとまった(^-^;;

diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

が必要らしい。
ただ同意書に同意しないと持ってこれない。

再びdistfilesフォルダへダウンロードする
#cd /usr/ports/distfiles/

#lynx
http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2
lynx: No match.

と表示が出る場合はトップページからダウンロードを試みます。


#lynx http://www.FreeBSDFoundation.org/


Diablo Caffe JDK 1.6.0-7 FreeBSD 7.x/i386 End-User 61M
diablo-caffe-freebsd7-i386-1.6.0_07-b02.tar.bz2

を選んでダウンロードと。
[X] I agree to the terms of this license agreement.Submit [Enter]

62591k あるそうです。結構大きいなぁ。

再びコンパイル

#cd /usr/ports/java/jdk16
#make install clean


待つこと8時間?


 :

Packing /usr/ports/java/jdk16/work/control/build/bsd-i586/j2sdk-image/jre/lib/rt.jar 47552100 bytes
Killed
gmake[3]: *** [pack-jars] Error 1
gmake[3]: Leaving directory `/usr/ports/java/jdk16/work/install/make/pack'
gmake[2]: *** [pack-sdk] Error 2
gmake[2]: Leaving directory `/usr/ports/java/jdk16/work/install/make/pack'
gmake[1]: *** [all] Error 1
gmake[1]: Leaving directory `/usr/ports/java/jdk16/work/install/make'
gmake: *** [install-build] Error 2
*** Error code 2

Stop in /usr/ports/java/jdk16.
*** Error code 1

Stop in /usr/ports/java/jdk16.


止まりました。。。
もう一回やってもまったく同じところで止まります。
何ででしょう。

ぐーぐる先生に聞いてみたら、
「resource limit killed off the pack」
リソース不足?
うん。。。確かに非力なマシンです。
どのリソースだろうと調べてみる。

#dmesg

swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
swap_pager: out of swap space
swap_pager_getswapspace(16): failed
swap_pager_getswapspace(16): failed
pid 62595 (pack200), uid 0, was killed: out of swap space

あーーーーーーーーーーーーーーーーーーーーーー
これか。
スワップスペースが足りない。どーすんだ?

スワップ領域の表示
# pstat -s
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 258200 10212 247988 4%

現在256M。やっぱり少ないのか。
スワップ領域。増やせないのだろうか。
ちょっと探してみたら簡単に増やせるらしい。

Swap領域を +512Mする
#dd if=/dev/zero of=/usr/SWAPFILE bs=1m count=512

待つこと5分。

rc.confに次の行を追加
[/etc/rc.conf]
swapfile="/usr/SWAPFILE"

再起動

#reboot

# pstat -s
Device 1K-blocks Used Avail Capacity
/dev/ad0s1b 258200 0 258200 0%
/dev/md0 524288 0 524288 0%
Total 782488 0 782488 0%

増えた!

あらためて

#cd /usr/ports/java/jdk16
#make install


待つこと4時間。

#rehash


#java -version
java version "1.6.0_07"
Diablo Java(TM) SE Runtime Environment (build 1.6.0_07-b02)
Diablo Java HotSpot(TM) Client VM (build 10.0-b23, mixed mode, sharing)

できました(^o^

最後に環境変数をセットします。
[~/.profile,~/.csh,~/.zsh 自分の環境に合わせて]

export JAVA_HOME=/usr/local/diablo-jdk1.6.0
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:/usr/local/jdk1.6.0/lib/tools.jar

バージョンが変わると、名前や保存場所が変わるとおもわれますので、
いずれの環境変数も実際にそのフォルダやファイル名を確認して記述してください。


■javaの動作確認 "Hello World!"を表示させる

次に動作確認です。
javaではファイル名とクラス名を同じにしておかなければなりません。
また、それらの名前は大文字と小文字を判別することに注意してください。
テスト用のコードを記述します。
[Test.java]

class Test{
public static void main(String args[]){
System.out.println("Hello Java World.");
}
}


コンパイルと実行を行います。

#javac Test.java
#java Test
Hello Java World.


これでOKです。

もし、クラス名とファイル名が異なっていた場合や、
#java Test.class
のように拡張子まで指定した場合、次のようなエラーが発生します。

#java test
Exception in thread "main" java.lang.NoClassDefFoundError: test
Caused by: java.lang.ClassNotFoundException: test
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)


クラス名とファイル名の大文字・小文字をよく確認して修正してください。


Be Careful When You Type

Type all code, commands, and file names exactly as shown. Both the compiler (javac) and launcher tool (java) are case-sensitive, so you must capitalize consistently.

HelloWorldApp != helloworldapp

The Java Tutorials



.

2009年4月16日木曜日

FreeBSD8.0

まだかな。。。
2011年あたりだろうか。
マイナーバージョンアップが年2回
メジャーバージョンアップが2年に1回ですよね。
そういえば私が始めてFreeBSDを使ったときは
FreeBSD4.2でした。
えーと。2001年かな?
おーーーもう8年前にもなる。
ISDNでInfospherでIP8を取りサーバーを構築し公開していました。

なつかしい。。。
8年でメジャーバージョンが3あがってるから、やっぱり2011年かなぁ。

.

2009年4月15日水曜日

Apache22 Perl Ruby PHP python Javaの速度比較 ベンチマーク

AMD GeodeNX1500/1050MHz
ASRock K7VT4A PRO
------------------------------
FreeBSD7.1/i386
Apache2.2.11
PHP5.2.9
Ruby1.8.7
Ruby1.9.1
Perl5.8.9
Python2.5.4
Java(JDK1.6.0)
GCC4.2.1
------------------------------
Apache上で動作させたスクリプトは実際のところどのスクリプトが早く、
速度差はどのくらいなのでしょうか?
ネットで検索してみても古い記事しかみつからず、PHP(PHP3)がもっとも遅い
といった結果しか見つけられませんでした。
しかしながら、PHPも今ではPHP5にバージョンアップされ、Zend社のランタイムコンパイラが内蔵されたことから、もっと高速化されているはずです。

簡単な例ながらベンチマークテストを行った結果次のようになりました。

1から100万までの総和の計算
C++0.0083sec (参考値)
PHP5.20.53sec
Java1.60.59sec
Perl5.81.38sec
Ruby1.91.49sec
Python2.51.59sec
Ruby1.82.69sec


C++は置いといて、この結果からするとPHP5.2がもっとも高速でした。
Ruby1.9が最も高速だと思っていましたが、Perlよりも遅いという結果でした。

さて、この結果はApacheへの1リクエストについての時間相当になるのですが、実際Apache上から呼び出されたときには、そのスクリプトが実行されるまでのオーバーヘッドとスクリプトの終了処理が発生するわけで、小さなトランザクションが多量に発生した場合の実行速度とはまったく別の結果が出るはずです。

この点についてはまた後ほど評価いたします。


次のコードでテストを行いました。
条件をなるべくそろえるために、同じようなコードになるようにしています。

PHP
[bench.php]

<?
$time_start = microtime(TRUE);

$sum = 0;

for($i = 0;$i <= 1000000;$i ++)
{
$sum = $sum + $i;
}
echo "Result:$sum<br>\n";

$time_end = microtime(TRUE);
$time_use = $time_end - $time_start;

echo "Start:$time_start<br>\n";
echo "End:$time_end<br>\n";
echo "Use:$time_use<br>\n";

?>


Perl
[bench.pl]

#!/usr/local/bin/perl
##
## bench.pl
##
use Time::HiRes;


print "Content-type: text/plain; charset=iso-8859-1\n\n";

$usecStart = Time::HiRes::gettimeofday();

$i = 0;

for($i = 0;$i <= 1000000;$i ++){
$sum = $sum + $i;
}

$usecEnd = Time::HiRes::gettimeofday();
$usecUse = $usecEnd - $usecStart;

print "Result:${sum}<br>\n";
print "Time:${usecUse}<br>\n";


Ruby
[bench.rb]

#!/usr/local/bin/ruby

print "Content-Type: text/html\n"
print "\n"

tmStart = Time.now

sum = 0
i = 1
while i <= 1000000
sum = sum + i
i = i + 1
end

tmEnd = Time.now

print "Result:#{sum}<br>\n"

tm = tmEnd - tmStart

fTime = tm.to_f
print "Sec:#{fTime}"



Python
[bench.py]

#!/usr/local/bin/python
##
## bench.py
##
import time

print "Content-type: text/plain; charset=iso-8859-1\n\n"

print "Hello World"

msecStart = time.time()


sum = 0
i = 0

while i <= 1000000:
    sum = sum + i
    i = i + 1

msecEnd = time.time()

print "Start:" , msecStart
print "End:" , msecEnd

msecUse = msecEnd - msecStart

print "Time:" , msecUse



Java (JDK1.6.0 diablo-caffe)

class Bench{
public static void main(String args[]){

long lStart,lEnd,lUse;

lStart = System.currentTimeMillis();

long lCount,lSum;
lSum = 0;
for(lCount = 0;lCount <= 1000000;lCount ++)
{
lSum = lSum + lCount;
}

lEnd = System.currentTimeMillis();

System.out.print("Result:");
System.out.println(lSum);

lUse = lEnd - lStart;

System.out.print("Time:");
System.out.println(lUse);



}
}



C++ (GCC4.2.1)
[bench.cpp]

#include <stdio.h>
#include <string.h>
#include <time.h>

int main()
{
timespec tsStart,tsEnd,tsUse;

memset(&tsStart,0,sizeof(timespec));
memset(&tsEnd,0,sizeof(timespec));
memset(&tsUse,0,sizeof(timespec));


clock_gettime(CLOCK_REALTIME,&tsStart);

int i = 0,sum = 0;

for(i = 0;i <= 100000000;i ++)
{
sum = sum + i;
}

clock_gettime(CLOCK_REALTIME,&tsEnd);

double dStart,dEnd,dUse;

dStart = (double)tsStart.tv_sec + (double)tsStart.tv_nsec * 0.000000001;
dEnd = (double)tsEnd.tv_sec + (double)tsEnd.tv_nsec * 0.000000001;
dUse = dEnd - dStart;

printf("Start:%f\n",dStart);
printf("End:%f\n",dEnd);
printf("Use:%7.2f\n",dUse);
}
----------------

#g++ bench.cpp
#./a.out

C++は概算です。

.

2009年4月13日月曜日

ubuntu su パスワード 認証失敗

ubuntu8.10
su -
パスワード 認証失敗
--------------------------------
この記事は移動しました。
ubuntu su パスワード 認証失敗


ubuntuはインストール直後はrootアカウントにパスワードが設定されていないらしい。

rootアカウントのパスワードを設定するには
端末を起動する。
[アプリケーション]-[アクセサリ]-[端末]

$sudo su -
[sudo] password for daimajin: (インストール時に設定したパスワード)
#passwd
新しいUNIXパスワードを入力してください: (rootアカウントのパスワード)
新しいUNIXパスワードを再入力してください:(rootアカウントのパスワード)




.