The UNIX and Linux Forums  


Go Back   A UNIX és Linux Forums > Top Fórumok > Magas szintű Programozás
.
google unix.com



Magas szintű Programozás Post kérdések C, C + +, Java, SQL, és más programozási nyelvek itt.

Több, UNIX és Linux fórum témák Ön által talált Hasznos
Szál Thread Starter Fórum Válaszok Utolsó hozzászólás
szemafor raguramtgr A UNIX a dummies Kérdések és válaszok 7 06-15-2009 10:39 AM
Szemafor Jaken Shell programozás és Scripting 2 04-04-2009 06:10 PM
dmidecode, RAM sebesség \u003d "Jelenlegi sebesség: Ismeretlen" Santi Fájlrendszerek, lemez és memória 0 02-16-2006 06:16 AM
Szemafor vjsony A UNIX a dummies Kérdések és válaszok 3 04-07-2003 03:06 PM
szemafor yls177 A UNIX a dummies Kérdések és válaszok 1 10-09-2002 12:18 AM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Téma eszközök Keresés a téma Értékelés: Thread Rating: 1 votes, 4.00 average. Megjelenítési módok
  #1 (permalink)  
Old 09-17-2008
migurus migurus is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Helyszín: USA
Hozzászólások: 49
szemafor sebességű hozzáférés

Én nyomozó néhány reteszelő rendszert használó szemafor. Hogy értékeljék az alapvető rendszer sebességét Én vezetem a hurok egyre szemaforhoz néhány információ és megjeleníteni a következő:

közben:; do. / semshow; Kész> res.txt

Futottam ezt 3 doboz - két hasonló modern HP Xeon doboz, egy futó SCO OpenServer 5, a másik a Fedora 2.6.9, és egy régi PIII rovat alatt modern Linux (nincs info).
Az eredmények nagyon intuitív számláló:
H / W | OS | avg száma fut ber sec
---- | --- | -------------------------
Xeon | SCO | 1700
Xeon | Fedora | 500
PIII | Linux (újabb distro ismeretlen) | 900
Mindhárom rendszerek nagyon sok üresjárat a vizsgálati időt futni.

Azt szeretném kérdezni, mi lenne a tényező, amely az ősi Unix teljesítenek a modern OSes is, hogy hogyan jön PIII doboz teljesítenek modern Xeon doboz hasonló OS. Minden ponters lenne méltányol.

A semshow program nagyon egyszerű, lásd a tőzsdei alább:

Kód:
 
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include  <sys/timeb.h>
#include <time.h>
#include "semlib.h"
#define MODE_CREATE     0
#define MODE_REMOVE     1
key_t   IPCKEY;
main(int argc, char *argv[])
{
  int   sid, i;
  pid_t last_rpid, last_wpid;
  char  dbuf[80];
  union semun           arg;
  unsigned short        vals[NSEMS];
  struct timeb tb;
  struct tm *tp;
        if((IPCKEY = get_ipc_key()) == -1)
        {
                errexit("Can Not Obtain IPC Key");
        }
        if((sid = semget(IPCKEY, NSEMS, 0)) == -1)
        {
                errexit("Can Not Get Semaphore ID");
        }
        memset(vals, 0, sizeof(vals));
        arg.array = &vals[0];
        if(semctl(sid, NSEMS, GETALL, arg) == -1)
        {
                errexit("Can Not Get Semaphore Values");
        }
        if((last_rpid = semctl(sid, RDLOCK, GETPID)) == -1)
        {
                errexit("Can Not Get Semaphore R-Pid");
        }
        if((last_wpid = semctl(sid, WRLOCK, GETPID)) == -1)
        {
                errexit("Can Not Get Semaphore W-Pid");
        }
        ftime(&tb);
        tp = localtime(&tb.time);
        strftime(dbuf, sizeof(dbuf) - 1, "%T", tp);
        printf("%12li.%03i %s  RD:[%i]  WR:[%i] %i/%i\n",
                tb.time, tb.millitm, dbuf, 
                vals[RDLOCK], vals[WRLOCK],
                last_rpid, last_wpid);
        exit(0);
}

semlib.h az e defs:

Kód:
 
#define NSEMS   2
#define RDLOCK  0
#define WRLOCK  1
union   semun   {
        int             val;
        struct semid_ds *buf;
        unsigned short  *array;
};

  #2 (permalink)  
Old 09-18-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderátor ala Mode
  
 

Join Date: Feb 2007
Helyszín: Innsbruck, Ausztria
Hozzászólások: 1891
Itt van egy válasz: Az idő mérése hibás. Lásd az ember ftime () Linux alatt:

Idézet:
Ez a funkció elavult. Ne használd. Ha az idő másodpercben elegendő, az idő (2) is
kell használni; gettimeofday (2) ad microseconds; clock_gettime (3) ad nanoseconds, de
még nem széles körben elérhető.

Under libc4 és libc5 a millitm területén nincs értelme. De korán glibc2 hibás és
értéke 0 ott glibc 2.1.1 helyes újra.
  #3 (permalink)  
Old 09-18-2008
migurus migurus is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Helyszín: USA
Hozzászólások: 49
A Fedora doboz
/lib/tls/libc.so.6 -> libc-2.3.5.so
igen, feltételezem, a verzió 2.3.5.

De ez az a pont mellett.

A tiszta hányszor rendszer futott a program egy másik azt jelzi, a teljes rendszer a teljesítmény, hogy úgy mondjam. Az én meglepetten PIII Linux alatt sikerült távon csaknem kétszer annyi a második ciklust withi Xeon 3.2GHz, mint Linux alatt. Ezután az azonos Xeon h / w alapján régi SCO OSR távon kétszer olyan gyors, mint PIII mezőbe.
  #4 (permalink)  
Old 09-18-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderátor ala Mode
  
 

Join Date: Feb 2007
Helyszín: Innsbruck, Ausztria
Hozzászólások: 1891
De Probléma # 1 az, hogy Ön erre a rossz irányba. Túl sok a könyvtár felszólítja a függőségek, hogy lényegtelen, hogy mit próbálnak mérni. Vegye ki minden szemafor kód, re-test, és milyen idő lesz. Vagy, fuss egy 10.000 x hurok körül szemaforhoz. Akkor skálán lefelé, a legközelebbi második hogy microseconds mistimings nem jön játékba.

A probléma az, hogy a # 2 szemaforok igényelnek autóbusz-hozzáférés és viszonylag független a processzor sebességét.
  #5 (permalink)  
Old 09-18-2008
migurus migurus is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Helyszín: USA
Hozzászólások: 49
I helyébe a ftime a gettimeofday, és újra futni az eredmény ugyanaz.

Összefoglalva ismét
ugyanolyan h / w:
programot futtat SCO 3-szor gyorsabb, mint a Linux,
Ugyanez OS:
program fut, 2-szer gyorsabb a régi PIII, mint a modern Xeon

Minden oka? any ideas?
  #6 (permalink)  
Old 09-18-2008
otheus's Avatar
otheus otheus is offline Forum Staff  
Moderátor ala Mode
  
 

Join Date: Feb 2007
Helyszín: Innsbruck, Ausztria
Hozzászólások: 1891
Sajnálom, de még mindig nem szüntette meg az összes "laza változókat". De a szemafor kódot hurok az 1000 vagy a padon, és így újra.
  #7 (permalink)  
Old 09-18-2008
migurus migurus is offline
Regisztrált felhasználó
  
 

Join Date: Sep 2008
Helyszín: USA
Hozzászólások: 49
Azt én egyszerűsített programot a legalapvetőbb minimum, hogy kap ipc gombot, kap szemaforhoz id és olvasás értékeit szemaforok majd outputs on-line (idő és a szemafor érték). Ez mind így van.

Majd futtassa a következő módon:
$ Közben:; do tstshow; Kész> x.txt
és én félbe hit legfontosabb várakozás után egy ideig.

mintát a x.txt fájl tartalma:
1221785538 [1,99]
1221785538 [1,99]
1221785538 [1,99]


Azután, hogy hányszor rendszer működtetése érdekében, hogy én:
$ Cut-c-12 x.txt | Uniq-c

mintát a teljesítmény:
616 1221785538
615 1221785539
612 1221785540

Tels nekem, hogy a rendszer képes működni, ez az egyszerű eljárás csak nagyjából 600-szer per pillanat.

Csak ha azt szeretném megismételni eredményeit itt:
PIII Linux alatt -- 900 szer / sec
Xeon 3,2 Linux -- 600 szer / sec
Xeon 3,2 SCO -- 1800 szer / sec
Rendszerek üresjáratban idején a vizsgálat.
Hogyan magyarázzák az eredményeket Megvan? Próbálom megtalálni a szűk keresztmetszetet a modern h / w futó Linux.

Kérjük, az én új, egyszerűsített kódot a következők:


Kód:
 
#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[])
{
  int           sid;
  ushort        vals[NSEMS] = {0, 0};
        if((sid = semget(get_ipc_key(), NSEMS, 0)) == -1)
        {
                errexit("Can Not Get Semaphore ID");
        }
        if(semctl(sid, NSEMS, GETALL, vals) == -1)
        {
                errexit("Can Not Get Semaphore Values");
        }
        printf("%12li [%i,%i]\n", time(NULL), vals[0], vals[1]);
        exit(0);
}

Closed Thread

Könyvjelzõk

Téma eszközök Keresés a téma
Keresés a téma:

Részletes keresés
Megjelenítési módok Rate this thread
Rate this thread:

Posting szabályzat
Ön nem post new threads
Ön nem post válaszok
Ön nem post Csatolmányok
Ön nem szerkeszteni az üzeneteidet

BB kód van Be
Smilies vannak Be
[IMG] kód Be
HTML kód Ki
Trackbacks vannak Be
Pingbacks vannak Be
Refbacks vannak Be




Minden idő GMT -4. Az idő most 06:37 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Nyelvre lefordítva Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
A UNIX és Linux Fórum Tartalom Copyright © 1993-2009. Minden jog Reserved.Ad menedzsment RedTyger

Content Relevant URLs by vBSEO 3.2.0