[svn-r9533] Purpose:

enhanced performance for h5diff

Description:
the comparison cycle for the 2 buffers read from file was using a compare function
where the type must be checked for each datum (e.g due to recursive calls in compound types)

for atomic types this checking can be avoided


Solution:

introduced cycles for each one of the atomic integer and float class types

Platforms tested:
linux
aix
solaris


Misc. update:
This commit is contained in:
Pedro Vicente Nunes 2004-11-16 14:51:39 -05:00
parent 22a72b911e
commit edbd77302f
2 changed files with 1952 additions and 35 deletions

View File

@ -238,4 +238,140 @@ hsize_t diff_datum(void *_mem1,
hsize_t diff_float(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_double(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_schar(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_uchar(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_short(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_ushort(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_int(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_uint(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_long(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_ulong(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_llong(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
hsize_t diff_ullong(unsigned char *mem1,
unsigned char *mem2,
hsize_t nelmts,
int rank,
hsize_t *acc,
hsize_t *pos,
diff_opt_t *options,
const char *obj1,
const char *obj2,
int *ph);
#endif /* H5DIFF_H__ */

File diff suppressed because it is too large Load Diff