- #include <ctime> 
- #include <iostream> 
- #include <stdlib.h>     /* srand, rand */ 
-   
- using namespace std; 
-   
- class C{ 
-     public: int data=0; 
- }; 
- class B{ 
-     public: C* c;	int accu=0; 
-     public: B(){ 
-     	c=new C(); 
-     } 
-     public: void doSomething(){ 
-     	accu+=c->data; //do something about c 
-     } 
- }; 
- int main() { 
- 	using namespace std; 
-   
- 	const int NUM=1000000; 
- 	B* bs[NUM]; 
- 	for(int n=0;n<NUM;n++){ 
- 	    bs[n]=new B(); 
- 	} 
- 	for(int loop=0;loop<20;loop++){ 
- 		double accumulator=0; 
-   
- 		for(int n=0;n<NUM;n++){ 
- 			int iSecret = rand() % NUM; 
- 			clock_t begin = clock(); 
- 		    bs[iSecret]->doSomething(); 
- 		    clock_t end = clock(); 
- 		    accumulator+=double(end - begin); 
- 		} 
-   
- 		double elapsed_secs = accumulator; 
- 		std::cout<<elapsed_secs<<std::endl; 
- 	} 
- } 
				I2luY2x1ZGUgPGN0aW1lPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxzdGRsaWIuaD4gICAgIC8qIHNyYW5kLCByYW5kICovCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgQ3sKICAgIHB1YmxpYzogaW50IGRhdGE9MDsKfTsKY2xhc3MgQnsKICAgIHB1YmxpYzogQyogYzsJaW50IGFjY3U9MDsKICAgIHB1YmxpYzogQigpewogICAgCWM9bmV3IEMoKTsKICAgIH0KICAgIHB1YmxpYzogdm9pZCBkb1NvbWV0aGluZygpewogICAgCWFjY3UrPWMtPmRhdGE7IC8vZG8gc29tZXRoaW5nIGFib3V0IGMKICAgIH0KfTsKaW50IG1haW4oKSB7Cgl1c2luZyBuYW1lc3BhY2Ugc3RkOwoKCWNvbnN0IGludCBOVU09MTAwMDAwMDsKCUIqIGJzW05VTV07Cglmb3IoaW50IG49MDtuPE5VTTtuKyspewoJICAgIGJzW25dPW5ldyBCKCk7Cgl9Cglmb3IoaW50IGxvb3A9MDtsb29wPDIwO2xvb3ArKyl7CgkJZG91YmxlIGFjY3VtdWxhdG9yPTA7CgkJCgkJZm9yKGludCBuPTA7bjxOVU07bisrKXsKCQkJaW50IGlTZWNyZXQgPSByYW5kKCkgJSBOVU07CgkJCWNsb2NrX3QgYmVnaW4gPSBjbG9jaygpOwoJCSAgICBic1tpU2VjcmV0XS0+ZG9Tb21ldGhpbmcoKTsKCQkgICAgY2xvY2tfdCBlbmQgPSBjbG9jaygpOwoJCSAgICBhY2N1bXVsYXRvcis9ZG91YmxlKGVuZCAtIGJlZ2luKTsKCQl9CgkJCgkJZG91YmxlIGVsYXBzZWRfc2VjcyA9IGFjY3VtdWxhdG9yOwoJCXN0ZDo6Y291dDw8ZWxhcHNlZF9zZWNzPDxzdGQ6OmVuZGw7Cgl9Cn0=