¾ðÊó²Ê³Ø¤ò³Ø¤ÖÂç³ØÀ¸¤¬¥×¥í¥°¥é¥ß¥ó¥°(C¸À¸ì,Java¤Ê¤É)¡¢¥Í¥Ã¥È¥ï¡¼¥¯¡¢»ñ³Ê»î¸³(¾ðÊó½èÍýµ»½Ñ¼Ô»î¸³,CCNA)¤Ê¤É¤Ë´Ø¤¹¤ëµ»ö¤ò½ñ¤¤¤Æ¤¤¤Þ¤¹¡£
C¸À¸ì¤ÇÇÛÎó¤Î³ÆÍ×ÁǤؽçÈ֤˥¢¥¯¥»¥¹¤¹¤ë¤¿¤á¤Ë¡¢index¤òÍѤ¤¤Æ¥ë¡¼¥×¤ò²ó¤¹¼¡¤Î¤è¤¦¤Ê¥³¡¼¥É¤ò¤·¤Ð¤·¤Ð½ñ¤¯¤È»×¤¤¤Þ¤¹¡£
int i;
for(i=0; i < SIZE; i++)
/* ¤³¤ÎÃæ¤Ça[i]¤È¥¢¥¯¥»¥¹¤¹¤ë¡£*/
¤·¤«¤·¡¢¼¡¤Î¤è¤¦¤Ë¥Ý¥¤¥ó¥¿¤òÍѤ¤¤Æ¥ë¡¼¥×¤ò²ó¤¹¥³¡¼¥É¤ò»þÀÞÌܤˤ·¤Þ¤¹¡£
int *p;
for(p=&a[0]; p!=&a[SIZE]; p++) sum = (*p)*(*p);
/* ¤³¤ÎÃæ¤Ç*p¤È¥¢¥¯¥»¥¹¤¹¤ë¡£*/
¤³¤Î¥³¡¼¥Ç¥£¥ó¥°¤ÎÍýͳ¤È¤·¤Æ¤Ï¡Ö¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤¿Êý¤¬Â®¤¤¤«¤é¡£¡×¡ÖC¸À¸ì¤é¤·¤¯¤Æ¤«¤Ã¤³¤¤¤¤¤«¤é¡£¡×¤Ê¤É¤¬¼ç¤À¤È»×¤¤¤Þ¤¹¤¬¡¢¸å¼Ô¤Ï¤È¤â¤«¤¯¤È¤·¤ÆÁ°¼Ô¤Î¼çÄ¥¤Ï¾ï¤ËÀµ¤·¤¤¤È¤Ï¸Â¤ê¤Þ¤»¤ó¡£
³Î¤«¤Ë¡¢ÀΤÏindex¤Ç¥ë¡¼¥×¤ò²ó¤·¤ÆÅº¤¨»ú¤ò»È¤Ã¤ÆÇÛÎ󤨥¢¥¯¥»¥¹¤¹¤ë¤è¤ê¤â¡¢¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ¥ë¡¼¥×¤ò²ó¤·¤¿Êý¤¬¹â®¤Ë¼Â¹Ô¤Ç¤¤¿¤è¤¦¤Ç¤¹¡£¤·¤«¤·¡¢¸½ºß¤Ï¥³¥ó¥Ñ¥¤¥é¤¬ºÇŬ²½¤ò´èÄ¥¤Ã¤Æ¤¯¤ì¤ë¤Î¤Ç¤É¤Á¤é¤Î¥³¡¼¥É¤â®ÅÙ¤ËÂ礷¤¿º¹¤Ï¤Ê¤¤¤«¡¢¤à¤·¤í¡¢¥Ý¥¤¥ó¥¿¤Ç¥ë¡¼¥×¤ò²ó¤¹¤Ê¤É¶Å¤Ã¤¿¥³¡¼¥É¤ò½ñ¤¯¤ÈºÇŬ²½¤Î˸¤²¤È¤Ê¤Ã¤Æ¤·¤Þ¤¤¡¢·ë²Ì¤È¤·¤Æindex¤ò»È¤Ã¤Æ¥ë¡¼¥×¤ò²ó¤¹¥³¡¼¥É¤è¤êÄ㮤ˤʤäƤ·¤Þ¤¦¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
¼ÂºÝ¤Ë¼Â¸³¤ò¤·¤Æ¤ß¤Þ¤·¤ç¤¦¡£¤³¤³¤Ç¤Ï¼¡¤Î¤è¤¦¤ÊÇÛÎó¤ÎϤò·×»»¤¹¤ë¥×¥í¥°¥é¥à¤Ç·×¬¤ò¤·¤Þ¤¹¡£
#include < stdio.h >
#include "clock.h"
#define SIZE 1024
#define LOOP 1024
void func_i(int *a, int *dest) {
int i, sum=0;
for(i=0; i < SIZE; i++) sum += a[i];
*dest = sum;
}
void func_p(int *a, int *dest) {
int *p, sum=0;
for(p=&a[0]; p!=&a[SIZE]; p++) sum += (*p);
*dest = sum;
}
int main() {
int i, a[SIZE], dest;
double tclock, iclock, pclock;
for(i=0; i < SIZE; i++) a[i] = i;
start_counter();
func_i(a, &dest);
iclock = get_counter();
for(i=0; i < LOOP; i++) {
start_counter();
func_i(a, &dest);
tclock = get_counter();
if(tclock < iclock) iclock = tclock;
}
printf("--- Index Code ---\n");
printf(" clock = %f dest = %d\n", iclock, dest);
start_counter();
func_p(a, &dest);
pclock = get_counter();
for(i=0; i < LOOP; i++) {
start_counter();
func_p(a, &dest);
tclock = get_counter();
if(tclock < pclock) pclock = tclock;
}
printf("--- Pointer Code ---\n");
printf(" clock = %f dest = %d\n", pclock, dest);
return 0;
}
¥×¥í¥°¥é¥à¤ÎÀèÆ¬¤Çinclude¤·¤Æ¤¤¤ë¥Ø¥Ã¥À¥Õ¥¡¥¤¥ëclock.h¤ÏCPU¤Î¥¯¥í¥Ã¥¯¿ô¤ò¬Äꤹ¤ë¤¿¤á¤Î´Ø¿ôstart_counter()¤Èget_counter()¤ò¸Æ¤Ó½Ð¤¹¤¿¤á¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë¤Ç¤¹¡£Ë¿Âç³Ø¤Î¼ø¶È¤ÇÍѤ¤¤é¤ì¤Æ¤¤¤ë¤â¤Î¤Ê¤Î¤Ç¡¢ÉáÄ̤ÎÊý¤Ï¤³¤Î¥×¥í¥°¥é¥à¤ò¥³¥Ô¥Ú¤·¤Æ¤½¤Î¤Þ¤Þ¥³¥ó¥Ñ¥¤¥ë¤·¤è¤¦¤È¤¹¤ë¤È¥¨¥é¡¼¤¬¤Ç¤Þ¤¹¡£
for(i=0; i < LOOP; i++)¤È¤¤¤¦¥ë¡¼¥×¤ò²ó¤·¤Æ²¿ÅÙ¤â¬Äê¤ò·«¤êÊÖ¤·¡¢¤½¤ÎºÇ¾®Ãͤò¼è¤Ã¤Æ¤¤¤Þ¤¹¡£¤³¤ì¤Ï¡¢Â¬ÄêÃæ¤Ë¤Û¤«¤Î½èÍý¤Î³ä¤ê¹þ¤ß¤¬È¯À¸¤·¤ÆÃÙ¤¯¤Ê¤ë¤³¤È¤Ï¤¢¤ë¤¬¡¢ÍýÁÛŪ¤ÊÃͤè¤ê¶öÁ³Â®¤¯¤Ê¤ë¤È¤¤¤¦¤³¤È¤Ï¤Ê¤¤¤¿¤á¤Ç¤¹¡£
¼Â¹Ô·ë²Ì¤ò°Ê²¼¤Ë¼¨¤·¤Þ¤¹¡£
$ ./a
--- Index Code ---
clock = 8955.000000 clock/element = 8.745117 dest = 523776
--- Pointer Code ---
clock = 8538.000000 clock/element = 8.337891 dest = 523776
ÉáÄ̤˥³¥ó¥Ñ¥¤¥ë¤ò¤·¤Æ¼Â¹Ô¤·¤¿¾ì¹ç¤Ï¡¢¥Ý¥¤¥ó¥¿¤Ç²ó¤¹¤Û¤¦¤¬¼ã´³¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬Â®¤¤¤È¤¤¤¦·ë²Ì¤¬¤Ç¤Þ¤·¤¿¡£
¼¡¤Ë¡¢gcc¤ÎºÇŬ²½¥ª¥×¥·¥ç¥ó(-O2)¤ò¤Ä¤±¤Æ¥³¥ó¥Ñ¥¤¥ë¤·¤¿¼Â¹Ô¥Õ¥¡¥¤¥ë¤òÁö¤é¤»¤Þ¤·¤¿¡£
$ ./a
--- Index Code ---
clock = 2161.000000 clock/element = 2.110352 dest = 523776
--- Pointer Code ---
clock = 2176.000000 clock/element = 2.125000 dest = 523776
¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤ê¡¢2¤Ä¤Î¥³¡¼¥É¤Î®Å٤ϤۤÜÅù¤·¤¯¤Ê¤Ã¤Æ¤·¤Þ¤¤¤Þ¤·¤¿¡£¤µ¤é¤Ë¤è¤¯¸«¤ë¤È¡¢index¤Ç¥ë¡¼¥×¤ò²ó¤¹Êý¤¬¤ï¤º¤«¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡¢¥Ý¥¤¥ó¥¿¤Ç²ó¤¹¤è¤ê®¤¤¤È¤¤¤¦·ë²Ì¤Ë¤Ê¤ê¤Þ¤·¤¿¡£
¤³¤Î¤è¤¦¤Ë¡¢¸½ºß¤Ï¥Ý¥¤¥ó¥¿¤ò»È¤Ã¤Æ¥ë¡¼¥×¤ò²ó¤¹¥³¡¼¥É¤âindex¤Ç²ó¤¹¥³¡¼¥É¤â¼Â¹Ô®ÅÙ¤ËÂ纹¤Ï¤Ê¤¯¡¢¾ì¹ç¤Ë¤è¤Ã¤Æ¤Ï¥³¥ó¥Ñ¥¤¥é¤ÎºÇŬ²½¤Ë¤è¤Ã¤Æindex¤ò»È¤Ã¤¿¥³¡¼¥É¤ÎÊý¤¬¡Ê¤ï¤º¤«¤Ë¤Ç¤Ï¤¢¤ê¤Þ¤¹¤¬¡Ë®¤¤¤³¤È¤µ¤¨¤¢¤ë¤Î¤Ç¤¹¡£
»ä¤¬Â¬Äê¤ËÍѤ¤¤¿¥Þ¥·¥ó¤Î¼ç¤Ê¥¹¥Ú¥Ã¥¯¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¹¡£¤³¤Î¼Â¸³¤Î·ë²Ì¤Ï´Ä¶¤Ë¤è¤Ã¤Æ¤³¤È¤Ê¤ë¤³¤È¤¬¤¢¤ê¤Þ¤¹¡£
| C¸À¸ì¥Ý¥¤¥ó¥¿´°Á´À©ÇÆ (ɸ½à¥×¥í¥°¥é¥Þ¡¼¥º¥é¥¤¥Ö¥é¥ê) | |
![]() | Á°¶¶ ÏÂÌï µ»½ÑɾÏÀ¼Ò 2001-01 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 4923 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
| ¥×¥í¥°¥é¥ß¥ó¥°¸À¸ìC ANSIµ¬³Ê½àµò | |
![]() | B.W. ¥«¡¼¥Ë¥Ï¥ó D.M. ¥ê¥Ã¥Á¡¼ ÀÐÅÄ À²µ× ¶¦Î©½ÐÈÇ 1989-06 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 3998 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
| ¿·ÈÇ ÌÀ²òC¸À¸ì ÆþÌçÊÔ | |
![]() | ¼ÆÅÄ˾ÍÎ ¥½¥Õ¥È¥Ð¥ó¥¯¥¯¥ê¥¨¥¤¥Æ¥£¥Ö 2004-08-28 Çä¤ê¾å¤²¥é¥ó¥¥ó¥° : 2193 ¤ª¤¹¤¹¤áÊ¿¶Ñ ![]() Amazon¤Ç¾Ü¤·¤¯¸«¤ë by G-Tools |
¥Æ¡¼¥Þ:¥×¥í¥°¥é¥ß¥ó¥° - ¥¸¥ã¥ó¥ë:¥³¥ó¥Ô¥å¡¼¥¿ - ¥½¡¼¥·¥ã¥ë¥Ö¥Ã¥¯¥Þ¡¼¥¯:
![]()
Author:TBVector
»ä¤Î¥µ¥¤¥È
¥Ö¥Ã¥¯¥Þ¡¼¥¯¤ÈRSS
ͧã¤Î¥µ¥¤¥È
¤¢¤ï¤»¤ÆÆÉ¤ß¤¿¤¤
¤Ï¤Æ¤Ê¥ê¥ó¥°