![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de Alto Nivel Plantear preguntas acerca de C, C + +, Java, SQL, y otros lenguajes de programación aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| semáforo | raguramtgr | UNIX for Dummies Preguntas y Respuestas | 7 | 06-15-2009 10:39 AM |
| Semáforo | Jaken | Programación de scripts de shell y | 2 | 04-04-2009 06:10 PM |
| dmidecode, velocidad de RAM \u003d "Velocidad actual: Desconocido" | Santi | Sistemas de ficheros, memoria y discos | 0 | 02-16-2006 06:16 AM |
| Semáforo | vjsony | UNIX for Dummies Preguntas y Respuestas | 3 | 04-07-2003 03:06 PM |
| semáforo | yls177 | UNIX for Dummies Preguntas y Respuestas | 1 | 10-09-2002 12:18 AM |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo |
Calificación:
|
Modos de visualización |
|
|
|
||||
|
Mi versión de la viga no tiene bandera-c, o de cualquier otra bandera similar a la que he usado con traza en Linux.
En Linux: $ / Sbin / sysctl-a | grep shm ... <snip error msgs> vm.hugetlb_shm_group \u003d 0 kernel.shmmni \u003d 4096 kernel.shmall \u003d 2097152 kernel.shmmax \u003d 33554432 Q: ¿Por qué parámetros SHM semáforo afectar el rendimiento? Además, sólo en este caso me encontré $ / Sbin / sysctl-a | grep sem <snip error msgs> kernel.sem \u003d 250 32000 32 128 Última edición por migurus; al 09-24-2008 08:55 PM.. Motivo: añadido información |
|
||||
|
Me gustaría pedir a los gurúes que más puedo publicar mi pregunta. ¿Recomendaría usted me cualquier otro grupo o foro?
Sus sugerencias serán apreciados. |
|
||||
|
Gracias Otheus y Jim, tengo bastante detallada respuesta aquí:
semáforo de la velocidad de acceso | KernelTrap Así, el núcleo 2.6.9 no es la mejor para la moderna h / w. Agradezco everebodys tiempo! |
|
|||||
|
Felicidades a ustedes por su tenacidad! Sin embargo, no creo que este es el final de la misma.
Hice un poco de investigación sobre la respuesta de strcmp. 2.6.9 fue liberado en 2004 y es el estándar con RHEL 4, que se incluye con glibc 2.3.4. Pentium 3 a la edad fueron en 2004. RHEL 5 buques con el kernel 2.6.18 y 2.5.12 glibc. Así que hice algunos puntos de referencia. He seguido la sugerencia del strcmp y utilizó "una caída de temporizador" método, cuando el bucle se inicia y termina después de la hora () toma nota de llamada de un cambio en cuestión de segundos. Hay de 10 a 100 ms diferencia a ambos lados de la caída, por lo que tuvo un promedio de varias carreras. Luego divida la ops / s por el número de la velocidad de la CPU (ciclos / s) para obtener "los tics por op".
Para los tics / op, menor es mejor. Por lo tanto, el núcleo 2.6.18 es más rápido que los núcleos 2.6.9. El Xeon es mucho lento. Presumiblemente, los granos fueron compiladas por un mínimo común denominador. Optimización de las banderas no fueron activadas, pero había una diferencia de compiladores: el gcc 2.6.9 acoge utilizado 3.4.6, mientras que las más recientes fueron con gcc 4.1.1. Asimismo, cabe señalar que no tenemos un AMD corriendo 2.6.9 ni un Xeon corriendo 2.6.18. Es muy posible que el problema es que estos núcleos no fueron compilados óptima de las distintas arquitecturas. ¿Por qué la Xeons son mucho más lenta es bastante sorprendente, dado su uso como característica HPC componentes. A pesar de todo, ninguno de estos resultados parecen explicar la cuestión fundamental: ¿Por qué es tanto más rápido de SCO? Última edición por otheus; al 10-08-2008 06:57 AM.. Motivo: me dijo que el Xeon es mucho más rápido cuando era mucho más lento. |
|
|||||
|
Aquí está mi código: Código:
#include <stdio.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <time.h>
#define NSEMS 2
/* change this per CPU to run between 8 and 12 s*/
const static int maxloop = 10000000;
main(int argc, char *argv[])
{
time_t start,last,stop;
long int i;
int estimate = 100;
int sid;
key_t key;
ushort vals[NSEMS] = { 0, 0 };
key = ftok("/tmp",99);
last=start=time(NULL);
for (i = 0; i < 1000; ++i) {
usleep(10);
last=time(NULL);
if (last > start) break;
}
start=last;
last = 0;
for (i = maxloop/8; i < maxloop; 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");
}
}
/* do the last 1/8th until the second changes.
If your processor reaches the maxloop before that,
change the maxloop or the divisor or the "estimate" */
stop=time(NULL);
for (i = maxloop - maxloop/8; i < maxloop; ++i) {
if ( !(i % estimate) ) {
last=time(NULL);
if (last > stop) break;
stop=last;
}
/* repeat semaphore opts */
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=last;
printf("%.2f semop/s (%i/%i) [%d]\n", (double)i/(stop-start), i, stop-start, estimate);
}
|
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|