[sword-cvs] icu-sword/source/test/perf/charperf CharPerf.pl,NONE,1.1 Makefile.in,NONE,1.1 charperf.cpp,NONE,1.1 charperf.dsp,NONE,1.1 charperf.h,NONE,1.1
sword@www.crosswire.org
sword@www.crosswire.org
Tue, 9 Sep 2003 19:42:52 -0700
- Previous message: [sword-cvs] icu-sword/source/test/perf/all all.dsp,NONE,1.1
- Next message: [sword-cvs] icu-sword/source/test/perf/normperf Makefile.in,NONE,1.1 NormPerf.pl,NONE,1.1 normperf.cpp,NONE,1.1 normperf.dsp,NONE,1.1 normperf.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Update of /usr/local/cvsroot/icu-sword/source/test/perf/charperf
In directory www:/tmp/cvs-serv19862/source/test/perf/charperf
Added Files:
CharPerf.pl Makefile.in charperf.cpp charperf.dsp charperf.h
Log Message:
ICU 2.6 commit
--- NEW FILE: CharPerf.pl ---
#!/usr/bin/perl -w
# ********************************************************************
# * COPYRIGHT:
# * Copyright (c) 2002, International Business Machines Corporation and
# * others. All Rights Reserved.
# ********************************************************************
use strict;
use lib '../perldriver';
use PerfFramework;
my $options = {
"title"=>"Character property performance: ICU vs. STDLib",
"headers"=>"StdLib ICU",
"operationIs"=>"code point",
"timePerOperationIs"=>"Time per code point",
"passes"=>"10",
"time"=>"5",
#"outputType"=>"HTML",
"dataDir"=>"c:/src/perf/data",
"outputDir"=>"../results"
};
# programs
# tests will be done for all the programs. Results will be stored and connected
my $p = "charperf.exe";
my $tests = {
"isAlpha", ["$p TestStdLibIsAlpha" , "$p TestIsAlpha" ],
"isUpper", ["$p TestStdLibIsUpper" , "$p TestIsUpper" ],
"isLower", ["$p TestStdLibIsLower" , "$p TestIsLower" ],
"isDigit", ["$p TestStdLibIsDigit" , "$p TestIsDigit" ],
"isSpace", ["$p TestStdLibIsSpace" , "$p TestIsSpace" ],
"isAlphaNumeric", ["$p TestStdLibIsAlphaNumeric" , "$p TestIsAlphaNumeric" ],
"isPrint", ["$p TestStdLibIsPrint" , "$p TestIsPrint" ],
"isControl", ["$p TestStdLibIsControl" , "$p TestIsControl" ],
"toLower", ["$p TestStdLibToLower" , "$p TestToLower" ],
"toUpper", ["$p TestStdLibToUpper" , "$p TestToUpper" ],
"isWhiteSpace", ["$p TestStdLibIsWhiteSpace" , "$p TestIsWhiteSpace" ],
};
my $dataFiles;
runTests($options, $tests, $dataFiles);
--- NEW FILE: Makefile.in ---
## Makefile.in for ICU - test/ucharperf
## Copyright (c) 2001, International Business Machines Corporation and
## others. All Rights Reserved.
## Source directory information
srcdir = @srcdir@
top_srcdir = @top_srcdir@
top_builddir = ../..
include $(top_builddir)/icudefs.mk
## Platform-specific setup
include @platform_make_fragment@
## Build directory information
subdir = test/ucharperf
## Extra files to remove for 'make clean'
CLEANFILES = *~ $(DEPS)
## Target information
TARGET = ucharperf
DEFS = @DEFS@
CPPFLAGS = @CPPFLAGS@ -I$(top_builddir)/common -I$(top_srcdir)/common
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
ENABLE_RPATH = @ENABLE_RPATH@
ifeq ($(ENABLE_RPATH),YES)
RPATHLDFLAGS = $(LD_RPATH)$(LD_RPATH_PRE)$(libdir)
endif
LDFLAGS = @LDFLAGS@ $(RPATHLDFLAGS)
LIBS = $(LIBICUUC) @LIBS@ @LIB_M@
OBJECTS = ucharperf.o
DEPS = $(OBJECTS:.o=.d)
## List of phony targets
.PHONY : all all-local install install-local clean clean-local \
distclean distclean-local dist dist-local check check-local
## Clear suffix list
.SUFFIXES :
## List of standard targets
all: all-local
install: install-local
clean: clean-local
distclean : distclean-local
dist: dist-local
check: all check-local
all-local: $(TARGET)
install-local:
dist-local:
clean-local:
test -z "$(CLEANFILES)" || $(RMV) $(CLEANFILES)
$(RMV) $(OBJECTS) $(TARGET)
distclean-local: clean-local
$(RMV) Makefile
check-local: all-local
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
cd $(top_builddir) \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
$(TARGET) : $(OBJECTS)
$(LINK.cc) -o $@ $^ $(LIBS)
invoke:
ICU_DATA=$${ICU_DATA:-$(top_builddir)/data/} TZ=PST8PDT $(INVOKE) $(INVOCATION)
ifeq (,$(MAKECMDGOALS))
-include $(DEPS)
else
ifneq ($(patsubst %clean,,$(MAKECMDGOALS)),)
ifneq ($(patsubst %install,,$(MAKECMDGOALS)),)
-include $(DEPS)
endif
endif
endif
--- NEW FILE: charperf.cpp ---
/********************************************************************
* COPYRIGHT:
* Copyright (C) 2002 IBM, Inc. All Rights Reserved.
*
********************************************************************/
/*****************************************************************************
* File charperf.cpp
*
* Modification History:
* Name Description
* Syn Wee Quek First Version
******************************************************************************
*/
/**
* This program tests character properties performance.
* APIs tested:
* ICU4C
* Windows
*/
#include "charperf.h"
#include "uoptions.h"
UOption options[] = {
UOPTION_DEF("min", 'n', UOPT_REQUIRES_ARG),
UOPTION_DEF("min", 'x', UOPT_REQUIRES_ARG),
};
int MIN_OPTION_ = 0;
int MAX_OPTION_ = 1;
int main(int argc, const char *argv[])
{
UErrorCode status = U_ZERO_ERROR;
CharPerformanceTest test(argc, argv, status);
if (U_FAILURE(status)){
return status;
}
if (test.run() == FALSE){
fprintf(stderr, "FAILED: Tests could not be run please check the "
"arguments.\n");
return -1;
}
return 0;
}
CharPerformanceTest::CharPerformanceTest(int32_t argc, const char *argv[],
UErrorCode &status)
: UPerfTest(argc, argv, status)
{
if (status== U_ILLEGAL_ARGUMENT_ERROR){
fprintf(stderr,gUsageString, "charperf");
return;
}
if (U_FAILURE(status)){
fprintf(stderr, "FAILED to create UPerfTest object. Error: %s\n",
u_errorName(status));
return;
}
if (_remainingArgc < 0) {
// that means there are some -names not matched in the super class
// first tag is always skipped in u_parseArgs
int size = - _remainingArgc;
argv += argc - size;
argc = size;
_remainingArgc = u_parseArgs(argc, (char**)argv,
(int32_t)(sizeof(options)/sizeof(options[0])), options);
}
MIN_ = 0;
MAX_ = 0xffff;
if (options[MIN_OPTION_].doesOccur) {
MIN_ = atoi(options[MIN_OPTION_].value);
}
if (options[MAX_OPTION_].doesOccur) {
MAX_ = atoi(options[MAX_OPTION_].value);
}
}
CharPerformanceTest::~CharPerformanceTest()
{
}
UPerfFunction* CharPerformanceTest::runIndexedTest(int32_t index, UBool exec,
const char *&name,
char* par)
{
switch (index) {
TESTCASE(0, TestIsAlpha);
TESTCASE(1, TestIsUpper);
TESTCASE(2, TestIsLower);
TESTCASE(3, TestIsDigit);
TESTCASE(4, TestIsSpace);
TESTCASE(5, TestIsAlphaNumeric);
TESTCASE(6, TestIsPrint);
TESTCASE(7, TestIsControl);
TESTCASE(8, TestToLower);
TESTCASE(9, TestToUpper);
TESTCASE(10, TestIsWhiteSpace);
TESTCASE(11, TestStdLibIsAlpha);
TESTCASE(12, TestStdLibIsUpper);
TESTCASE(13, TestStdLibIsLower);
TESTCASE(14, TestStdLibIsDigit);
TESTCASE(15, TestStdLibIsSpace);
TESTCASE(16, TestStdLibIsAlphaNumeric);
TESTCASE(17, TestStdLibIsPrint);
TESTCASE(18, TestStdLibIsControl);
TESTCASE(19, TestStdLibToLower);
TESTCASE(20, TestStdLibToUpper);
TESTCASE(21, TestStdLibIsWhiteSpace);
default:
name = "";
return NULL;
}
return NULL;
}
UPerfFunction* CharPerformanceTest::TestIsAlpha()
{
return new CharPerfFunction(isAlpha, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsUpper()
{
return new CharPerfFunction(isUpper, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsLower()
{
return new CharPerfFunction(isLower, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsDigit()
{
return new CharPerfFunction(isDigit, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsSpace()
{
return new CharPerfFunction(isSpace, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsAlphaNumeric()
{
return new CharPerfFunction(isAlphaNumeric, MIN_, MAX_);
}
/**
* This test may be different since c lib has a type PUNCT and it is printable.
* iswgraph is not used for testing since it is a subset of iswprint with the
* exception of returning true for white spaces. no match found in icu4c.
*/
UPerfFunction* CharPerformanceTest::TestIsPrint()
{
return new CharPerfFunction(isPrint, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsControl()
{
return new CharPerfFunction(isControl, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestToLower()
{
return new CharPerfFunction(toLower, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestToUpper()
{
return new CharPerfFunction(toUpper, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestIsWhiteSpace()
{
return new CharPerfFunction(isWhiteSpace, MIN_, MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsAlpha()
{
return new StdLibCharPerfFunction(StdLibIsAlpha, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsUpper()
{
return new StdLibCharPerfFunction(StdLibIsUpper, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsLower()
{
return new StdLibCharPerfFunction(StdLibIsLower, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsDigit()
{
return new StdLibCharPerfFunction(StdLibIsDigit, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsSpace()
{
return new StdLibCharPerfFunction(StdLibIsSpace, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsAlphaNumeric()
{
return new StdLibCharPerfFunction(StdLibIsAlphaNumeric, (wchar_t)MIN_,
(wchar_t)MAX_);
}
/**
* This test may be different since c lib has a type PUNCT and it is printable.
* iswgraph is not used for testing since it is a subset of iswprint with the
* exception of returning true for white spaces. no match found in icu4c.
*/
UPerfFunction* CharPerformanceTest::TestStdLibIsPrint()
{
return new StdLibCharPerfFunction(StdLibIsPrint, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsControl()
{
return new StdLibCharPerfFunction(StdLibIsControl, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibToLower()
{
return new StdLibCharPerfFunction(StdLibToLower, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibToUpper()
{
return new StdLibCharPerfFunction(StdLibToUpper, (wchar_t)MIN_,
(wchar_t)MAX_);
}
UPerfFunction* CharPerformanceTest::TestStdLibIsWhiteSpace()
{
return new StdLibCharPerfFunction(StdLibIsWhiteSpace, (wchar_t)MIN_,
(wchar_t)MAX_);
}
--- NEW FILE: charperf.dsp ---
# Microsoft Developer Studio Project File - Name="charperf" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=charperf - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "charperf.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "charperf.mak" CFG="charperf - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "charperf - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "charperf - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "charperf - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "..\..\..\..\include" /I "..\..\..\tools\toolutil" /I "..\..\..\common" /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# SUBTRACT CPP /Fr
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 icuuc.lib icutu.lib winmm.lib /nologo /subsystem:console /machine:I386 /libpath:"..\..\..\..\lib"
!ELSEIF "$(CFG)" == "charperf - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
MTL=midl.exe
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "..\..\..\..\include" /I "..\..\..\tools\toolutil" /I "..\..\..\common" /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 icuucd.lib icutud.lib winmm.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept /libpath:"..\..\..\..\lib\\"
!ENDIF
# Begin Target
# Name "charperf - Win32 Release"
# Name "charperf - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\charperf.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\charperf.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
--- NEW FILE: charperf.h ---
/*
**********************************************************************
* Copyright (c) 2002, International Business Machines
* Corporation and others. All Rights Reserved.
**********************************************************************
**********************************************************************
*/
#ifndef _CHARPERF_H
#define _CHARPERF_H
#include "uperf.h"
#include "unicode/uchar.h"
#include <stdlib.h>
#include <stdio.h>
#include <wchar.h>
typedef void (*CharPerfFn)(UChar32 ch);
typedef void (*StdLibCharPerfFn)(wchar_t ch);
class CharPerfFunction : public UPerfFunction
{
public:
virtual void call(UErrorCode* status)
{
for (UChar32 i = MIN_; i < MAX_; i ++) {
(*m_fn_)(i);
}
}
virtual long getOperationsPerIteration()
{
return MAX_ - MIN_;
}
CharPerfFunction(CharPerfFn func, UChar32 min, UChar32 max)
{
m_fn_ = func;
MIN_ = min;
MAX_ = max;
}
private:
CharPerfFn m_fn_;
UChar32 MIN_;
UChar32 MAX_;
};
class StdLibCharPerfFunction : public UPerfFunction
{
public:
virtual void call(UErrorCode* status)
{
// note wchar_t is unsigned, it will revert to 0 once it reaches
// 65535
for (wchar_t i = MIN_; i < MAX_; i ++) {
(*m_fn_)(i);
}
}
virtual long getOperationsPerIteration()
{
return MAX_ - MIN_;
}
StdLibCharPerfFunction(StdLibCharPerfFn func, wchar_t min, wchar_t max)
{
m_fn_ = func;
MIN_ = min;
MAX_ = max;
}
~StdLibCharPerfFunction()
{
}
private:
StdLibCharPerfFn m_fn_;
wchar_t MIN_;
wchar_t MAX_;
};
class CharPerformanceTest : public UPerfTest
{
public:
CharPerformanceTest(int32_t argc, const char *argv[], UErrorCode &status);
~CharPerformanceTest();
virtual UPerfFunction* runIndexedTest(int32_t index, UBool exec,
const char *&name,
char *par = NULL);
UPerfFunction* TestIsAlpha();
UPerfFunction* TestIsUpper();
UPerfFunction* TestIsLower();
UPerfFunction* TestIsDigit();
UPerfFunction* TestIsSpace();
UPerfFunction* TestIsAlphaNumeric();
UPerfFunction* TestIsPrint();
UPerfFunction* TestIsControl();
UPerfFunction* TestToLower();
UPerfFunction* TestToUpper();
UPerfFunction* TestIsWhiteSpace();
UPerfFunction* TestStdLibIsAlpha();
UPerfFunction* TestStdLibIsUpper();
UPerfFunction* TestStdLibIsLower();
UPerfFunction* TestStdLibIsDigit();
UPerfFunction* TestStdLibIsSpace();
UPerfFunction* TestStdLibIsAlphaNumeric();
UPerfFunction* TestStdLibIsPrint();
UPerfFunction* TestStdLibIsControl();
UPerfFunction* TestStdLibToLower();
UPerfFunction* TestStdLibToUpper();
UPerfFunction* TestStdLibIsWhiteSpace();
private:
UChar32 MIN_;
UChar32 MAX_;
};
inline void isAlpha(UChar32 ch)
{
u_isalpha(ch);
}
inline void isUpper(UChar32 ch)
{
u_isupper(ch);
}
inline void isLower(UChar32 ch)
{
u_islower(ch);
}
inline void isDigit(UChar32 ch)
{
u_isdigit(ch);
}
inline void isSpace(UChar32 ch)
{
u_isspace(ch);
}
inline void isAlphaNumeric(UChar32 ch)
{
u_isalnum(ch);
}
/**
* This test may be different since c lib has a type PUNCT and it is printable.
* iswgraph is not used for testing since it is a subset of iswprint with the
* exception of returning true for white spaces. no match found in icu4c.
*/
inline void isPrint(UChar32 ch)
{
u_isprint(ch);
}
inline void isControl(UChar32 ch)
{
u_iscntrl(ch);
}
inline void toLower(UChar32 ch)
{
u_tolower(ch);
}
inline void toUpper(UChar32 ch)
{
u_toupper(ch);
}
inline void isWhiteSpace(UChar32 ch)
{
u_isWhitespace(ch);
}
inline void StdLibIsAlpha(wchar_t ch)
{
iswalpha(ch);
}
inline void StdLibIsUpper(wchar_t ch)
{
iswupper(ch);
}
inline void StdLibIsLower(wchar_t ch)
{
iswlower(ch);
}
inline void StdLibIsDigit(wchar_t ch)
{
iswdigit(ch);
}
inline void StdLibIsSpace(wchar_t ch)
{
iswspace(ch);
}
inline void StdLibIsAlphaNumeric(wchar_t ch)
{
iswalnum(ch);
}
/**
* This test may be different since c lib has a type PUNCT and it is printable.
* iswgraph is not used for testing since it is a subset of iswprint with the
* exception of returning true for white spaces. no match found in icu4c.
*/
inline void StdLibIsPrint(wchar_t ch)
{
iswprint(ch);
}
inline void StdLibIsControl(wchar_t ch)
{
iswcntrl(ch);
}
inline void StdLibToLower(wchar_t ch)
{
towlower(ch);
}
inline void StdLibToUpper(wchar_t ch)
{
towupper(ch);
}
inline void StdLibIsWhiteSpace(wchar_t ch)
{
iswspace(ch);
}
#endif // CHARPERF_H
- Previous message: [sword-cvs] icu-sword/source/test/perf/all all.dsp,NONE,1.1
- Next message: [sword-cvs] icu-sword/source/test/perf/normperf Makefile.in,NONE,1.1 NormPerf.pl,NONE,1.1 normperf.cpp,NONE,1.1 normperf.dsp,NONE,1.1 normperf.h,NONE,1.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]