The UNIX and Linux Forums  


Go Back   UNIXおよびLinuxフォーラム > トップフォーラム > 高レベルのプログラミング
Googleのunix.com



高レベルのプログラミング は、 C 、 C + +についての質問の投稿は、 Java 、 SQL 、および他のプログラミング言語です。

その他のUNIXおよびLinuxフォーラムトピックは参考にすること
スレッド スレッドスターター フォーラム 返信 最後の投稿
セマフォ raguramtgr UNIXのダミー質問と回答のため 7 2009年6月15日 10:39午前
セマフォ Jaken シェルプログラミングとスクリプティング 2 2009年4月4日 06:10午後
dmidecode 、 RAMの速度\u003d "現在の速度:不明" サンティ ファイルシステムは、ディスクとメモリ 0 2006年2月16日 06:16午前
セマフォ vjsony UNIXのダミー質問と回答のため 3 2003年4月7日 03:06午後
セマフォ yls177 UNIXのダミー質問と回答のため 1 2002年10月9日 12:18午前

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 評価: Thread Rating: 1 votes, 4.00 average. 表示モード
  #1固定リンク)  
Old 2008年9月18日
otheus's Avatar
otheus otheus is offline Forum Staff  
モデレータ翼モード
  
 

参加日: 2007年2月
場所:インスブルック、オーストリア
投稿数: 1,889
指示に従っているようだから、しないと、私のベンチマークは、次のコードには期待しないでください。場合は、しかし、あなたの結果はまだ広く、それをここで注意してください予想外である。


コード:
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <time.h>
#define NSEMS   2
main(int argc, char *argv[])
{
    time_t start,stop;
    long int i;
    int sid;
    key_t key;
    ushort vals[NSEMS] = { 0, 0 };

    key = ftok("/tmp",99);
    start=time(NULL);
    for (i = 0; i < 5000000; i++) {
      if ((sid = semget(key, NSEMS, IPC_CREAT | 0777)) == -1) {
          perror("Can Not Get Semaphore ID");
      }
      if (semctl(sid, NSEMS, GETALL, vals) == -1) {
          perror("Can Not Get Semaphore Values");
      }
    }
    stop=time(NULL);
    printf("%.2f semop/s [%i,%i]\n", (double)i/(stop-start), vals[0], vals[1]);
}

  #2固定リンク)  
Old 2008年9月19日
時代 era is offline Forum Advisor  
Herder of Useless Cats (On Sabbatical)
  
 

参加日: 2008年3月
場所: /there/is/only/bin/sh
投稿数: 3652
強調のためだけに、あなたの結果、多数のプロセスの開始のオーバーヘッド、および、それらのは、バッファのブロックデバイスへの行のテキストを印刷すると、プロセスの終了などがあります。これらの業務のボトルネックをはるかにテストしようとしているものよりも、その結果を説明している。
  #3固定リンク)  
Old 2008年9月19日
migurus migurus is offline
登録ユーザー
  
 

参加日: 2008年09月
場所:アメリカ
投稿: 49
私はコンパイルし、ループのテストコードを実行Otheusで掲載した。

のXeon /上海協力機構の結果: 555555.56 semop /秒[ 0,0 ]
のXeon / Linuxの結果: 128205.13 semop /秒[ 0,0 ]

今が、結果(比例)は私のテストで私はここに重大な結果を取得するにはPIIIはないと思うが何を見たか同じですPIIIボックスにアクセスする必要はありません。

時代としてはオーバーヘッドが言及-と密接に似ている状況が評価され私はそれのため、一監督は、有効なテストとは認識しています。

そのためには、誰が何がボトルネックであることは考えているか?ここで見るか?私は私としての一番下に永続性を得るのご協力に感謝いたします。
  #4固定リンク)  
Old 2008年9月19日
ジムマクナマラ jim mcnamara is online now Forum Staff  
...@...
  
 

参加日: 2004年2月
場所: NM
投稿数:5798
は、セマフォにアクセスする-デッドロックがないとすれば-それはダイレクトメモリアクセス操作は、ページ全体、またはプロセスのメモリへの倍数のオーバーヘッドを追加しています。それは高価な呼び出しを伴うことができます: brk ( ) 、メモリがない場合は既に存在しています。

それに依存するもの

コード:
size mycode

全体で、というのを最小限にPAGE_SIZE ( )境界mutiple (通常)境界スタックフレームは、余分なメモリの複数のページを残すことができますを検挙した。ヒープに割り当てることが何を示すです見てください。を開始した。 sbrkプロセスのメモリを見つけることの終わり( 0 )を呼び出すことができます。

ほとんどの実装では、ヒープから割り当てますshmget : / procには/ sys /カーネル/ shに*プロセスのメモリの情報を共有しているディレクトリ。カーネルの設定、共有メモリの操作を制御します。

これを試してください:

コード:
gcc -p -g -o otherus otheus.c
otheus.c
grpof otheus

が過ごした時間が表示されます+兼それぞれの関数呼び出しのための番号を呼び出します。あなたが/どこが問題かを確認することができます。 1つのセマフォがある場合はsemgetしてあなたの最も可能性の高い問題になるでしょう-メモリのページを割り当てる。
  #5固定リンク)  
Old 2008年9月19日
ジムマクナマラ jim mcnamara is online now Forum Staff  
...@...
  
 

参加日: 2004年2月
場所: NM
投稿数:5798
psの呼び出しutimes ( * )実際の時代に、さらに粒CLK_TCK 、通常の方法ですTMSの構造体の時間よりも( ) 。

gettimeofdayも壁も、より正確に時刻を取得するために使用することができます。 utimes ( ) clock_t壁の時刻を返します。
  #6固定リンク)  
Old 2008年9月20日
otheus's Avatar
otheus otheus is offline Forum Staff  
モデレータ翼モード
  
 

参加日: 2007年2月
場所:インスブルック、オーストリア
投稿数: 1,889
引用:
当初の投稿 ジムマクナマラ View Post
psの呼び出しutimes ( * )実際の時代に、さらに粒CLK_TCK 、通常の方法ですTMSの構造体の時間よりも( ) 。

gettimeofdayも壁も、より正確に時刻を取得するために使用することができます。 utimes ( ) clock_t壁の時刻を返します。
ジム、 utimes ( )しているものと思うことはありません。もっとGettimeofdayが、その後のコードは、もう少し複雑ですが正しいです。マイクロ違いは目にしているパフォーマンスの格差を生むはない。
  #7固定リンク)  
Old 2008年9月19日
migurus migurus is offline
登録ユーザー
  
 

参加日: 2008年09月
場所:アメリカ
投稿: 49
ジム、
ここを走ったので、私はいくつかの問題に私の前にプロファイリング、試したこと:
$ gccの-パプアニューギニア- tstloopまたはtstloop.c
$ tstloop
128205.13 semop /秒[ 0,0 ]
$ gprof tstloop
gprof : gmon.outファイルを呼び出し、グラフのデータが不足しています

任意のアイデアですか?

時間を利用する限り対gettimeofday (これは、実際使用していた私は)全く無関係ですが、私は2番目のシステムごとに何回見しようとしているのは単に、セマフォを読むようなプロセスを作成することが可能です。

ありがとう。
Closed Thread

ブックマーク

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 01:09午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0