src/tools/memtest.cpp

Go to the documentation of this file.
00001 #include "tMemManager.h"
00002 #include "tLinkedList.h"
00003 #include "tSysTime.h"
00004 
00005 #include <iostream>
00006 
00007 #define MAX 100
00008 
00009 class test3;
00010 
00011 test3 *anchor;
00012 
00013 class test3:public tListItem<test3>{
00014 public:
00015     test3():tListItem<test3>(::anchor){};
00016 };
00017 
00018 test3 a,b,c,d;
00019 
00020 
00021 class test{
00022     int x;
00023 
00024 public:
00025     virtual ~test(){};
00026 
00027     /*
00028     #define classname test
00029 
00030     public:
00031     void *operator new(size_t s){
00032       if (sizeof(classname)>MAX_SIZE*4)
00033         return::operator new(s);
00034       else 
00035         return tMemMan::Alloc(sizeof(classname));
00036     }
00037 
00038     void operator delete(void *p){
00039       if (p) { 
00040         if (sizeof(classname)>MAX_SIZE*4)
00041     ::operator delete(p); 
00042         else 
00043     tMemMan::Dispose(p,sizeof(classname));
00044       }
00045     }
00046     */
00047 
00048     tMEMMANAGER(test);
00049 };
00050 
00051 
00052 class test2: public test{
00053     int y;
00054 
00055 public:
00056     virtual ~test2(){};
00057 
00058     tMEMMANAGER(test2);
00059 };
00060 
00061 
00062 
00063 class A{
00064 public:
00065     int x;
00066 
00067     A(int X):x(X){}
00068 };
00069 
00070 class B:virtual public A{
00071 public:
00072     B():A(1){}
00073 };
00074 
00075 class C:public B{
00076 public:
00077     C():A(2){}
00078 };
00079 
00080 #define LEN  100000
00081 #define ELEM 3
00082 
00083 void test_max_a(){
00084     float x[LEN][ELEM];
00085     int i,j;
00086 
00087     for (i=LEN-1; i>=0; i--)
00088     {
00089         x[i][0] = 100;
00090         x[i][1] = 150-i;
00091         x[i][2] = 75+i;
00092     }
00093 
00094     for (int k=99; k>=0; k--)
00095         for (i=LEN-1; i>=0; i--)
00096         {
00097             float max = -10000;
00098             float min = 10000;
00099 
00100             for (j=ELEM; j>=0; j--)
00101             {
00102                 float y   = x[i][j];
00103                 float ymi = min-y;
00104                 float yma = y-max;
00105 
00106                 min -= (ymi + fabs(ymi))*.5;
00107                 max += (yma + fabs(yma))*.5;
00108                 /*
00109                 if (min > x[i][j])
00110                   min = x[i][j];
00111                 else
00112                   min = min;
00113 
00114                 if (max < x[i][j])
00115                   max = x[i][j];
00116                 else
00117                   max = max;
00118                 */
00119             }
00120         }
00121 }
00122 
00123 void test_max_b(){
00124     float x[LEN][ELEM];
00125     int i,j;
00126 
00127     for (i=LEN-1; i>=0; i--)
00128     {
00129         x[i][0] = 100;
00130         x[i][1] = 150-i;
00131         x[i][2] = 75+i;
00132     }
00133 
00134     for (int k=99; k>=0; k--)
00135         for (i=LEN-1; i>=0; i--)
00136         {
00137             float max = -10000;
00138             float min = 10000;
00139 
00140             for (j=ELEM; j>=0; j--)
00141             {
00142                 min = (min > x[i][j] ? x[i][j] : min);
00143                 max = (max < x[i][j] ? x[i][j] : max);
00144             }
00145         }
00146 }
00147 
00148 
00149 
00150 int main(){
00151     float ta = tSysTimeFloat();
00152     test_max_b();
00153     float tb = tSysTimeFloat();
00154     test_max_a();
00155     float tc = tSysTimeFloat();
00156 
00157     std::cout << tb-ta << " , " << tc-tb << '\n';
00158 
00159 
00160 
00161     C c;
00162     std::cout << c.x << '\n';
00163 
00164     int i;
00165     test *x[MAX];
00166 
00167     test *y=new test2;
00168     delete y;
00169 
00170     for(i=0;i<MAX;i++)
00171         x[i]=new test;
00172 
00173     for (i=0;i<MAX;i++)
00174         if (i%4 !=0){
00175             delete x[i];
00176             x[i]=NULL;
00177         }
00178 
00179     for(i=0;i<MAX;i++)
00180         if (!x[i])
00181             x[i]=new test;
00182 
00183     for(i=0;i<MAX;i++)
00184         delete x[i];
00185 
00186     return 0;
00187 }
00188 
00189 
00190 
00191 
00192 

Generated on Sat Mar 15 22:55:59 2008 for Armagetron Advanced by  doxygen 1.5.4