FC2ブログ

Be導師日記

ヒューマンスキルオワコンな管理人、Be導師 によるてきとーに運営されてるブログ。きままに、てきとうに。
2018年11月 ≪  12345678910111213141516171819202122232425262728293031 ≫ 2019年01月
TOPスポンサー広告 ≫ webサーバーベンチマーク用に作ってみた3KBランダム英数字プログラム(Not CGITOPC系列 ≫ webサーバーベンチマーク用に作ってみた3KBランダム英数字プログラム(Not CGI

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 | Comments(-) | Trackbacks(-)

webサーバーベンチマーク用に作ってみた3KBランダム英数字プログラム(Not CGI

大学の研究室で作ったWebサーバーのベンチを取るためにランダム英数字を表示するだけのプログラムを作ってみた。

ロジックはとっても簡単だけどPerlやJavaでやるよりもCのほうが速度がでるのでCで作ったっていうだけ。

これは一応3KB(= 3072byte )分の文字列。(1KB = 1024 byte = 英数字1024文字 より。

スタンドアロンなのでそのままコンパイルして、静的CGIでベンチを取るときは
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。
間にリダイレクトした文字列をこぴぺしたらおk。

任意のnB分の文字列がほしいときは moji[]の数値をいじればおk

以下ソースコード。

#include
#include
#include


unsigned char moji[3072]; //3KB分の文字数を定義
int i = 0; //ループ用整数
int j = 0; //字数カウント用整数

//moji[]に数値を代入する関数
void addstr(int a){
moji[j] = a;
j++;
}


int main(){

int a = 0; //発生乱数格納用整数

srand((unsigned) time(NULL));//乱数系列の変更

/* Asciiコードで英数字は以下のとおり

数字文字 0~9:10進の48~57 と対応

アルファベット文字 A~Z:10進 65~90 と対応

アルファベット文字 a~Z:10進 97~122 と対応

*/

/*   乱数で発生した数値を英数字にするためには

1.発生した乱数を122通りにする。(122で割って1を足す)
2.もしその数値が上記の範囲内なら次へ。範囲外なら無視
3.数値をAsciiコードに則って文字に変換
(printfで表示する際に %d ではなく %c にしたらおk)
4.文字列にするsprintfという方法もないわけでは無い。
*/

//1~122の乱数を発生
for (i = 1 ; j < 3074 ; i++){
a = rand() % 122 + 1;
//この時点で a には1~122の数値が格納されている。
if(a >= 48 && a <= 57){
addstr(a);
}

if(a >= 65 && a <= 90){
addstr(a);
}

if(a >=97 && a <= 122){
addstr(a);
}
}

j = 0; // 1文字目へ

for (i = 0 ; j < 3074 ; i ++){
printf("%c",moji[j]); //文字を表示
j++;//次の文字へ

if(i == 79) {
printf("\n"); //80文字目で改行
i=0;
}
}
return 0;
}

Comment

No title
編集
福大の3年生はもう研究室配属されているの???
2012年10月31日(Wed) 21:34












非公開コメントにする
Trackback

Trackback URL

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。