Browse Source

performance experiments

aidmar.wainakh 6 years ago
parent
commit
93b60dd5c6
2 changed files with 22 additions and 25 deletions
  1. 18 21
      code_boost/src/cxx/pcap_processor.cpp
  2. 4 4
      code_boost/src/cxx/statistics.cpp

+ 18 - 21
code_boost/src/cxx/pcap_processor.cpp

@@ -118,44 +118,41 @@ void pcap_processor::collect_statistics() {
     
         // Aidmar
         //int counter=0;
-        //int timeIntervalCounter = 1;   
-        //int timeIntervalsNum = 100;
-        //std::chrono::microseconds intervalStartTimestamp = stats.getTimestampFirstPacket();
-        //std::chrono::microseconds firstTimestamp = stats.getTimestampFirstPacket(); 
+        int timeIntervalCounter = 1;   
+        int timeIntervalsNum = 100;
+        std::chrono::microseconds intervalStartTimestamp = stats.getTimestampFirstPacket();
+        std::chrono::microseconds firstTimestamp = stats.getTimestampFirstPacket(); 
         std::chrono::high_resolution_clock::time_point t1 = std::chrono::high_resolution_clock::now();    
         SnifferIterator lastpkt; 
         for (SnifferIterator j = snifferOverview.begin(); j != snifferOverview.end();  snifferIteratorIncrement(j)) {lastpkt = j;}          
         std::chrono::high_resolution_clock::time_point t2 = std::chrono::high_resolution_clock::now();
         auto duration = std::chrono::duration_cast<std::chrono::microseconds>( t2 - t1 ).count()*1e-6;
-        std::cout<< "empty loop: " << duration << " sec" << std::endl;
-
-            
-        //std::chrono::microseconds lastTimestamp = lastpkt->timestamp();                  
-        //std::chrono::microseconds captureDuration = lastTimestamp - firstTimestamp;
-        /*if(captureDuration.count()<=0){
+        std::cout<< "empty loop: " << duration << " sec" << std::endl;            
+        std::chrono::microseconds lastTimestamp = lastpkt->timestamp();                  
+        std::chrono::microseconds captureDuration = lastTimestamp - firstTimestamp;
+        if(captureDuration.count()<=0){
             std::cout<<"ERROR: PCAP file is empty!"<<"\n";
             return;
-        }*/
-        //long timeInterval_microsec = captureDuration.count() / timeIntervalsNum;
-        //std::chrono::duration<int, std::micro> timeInterval(timeInterval_microsec);             
-        //int previousPacketCount = 0;
-        //float previousSumPacketSize = 0;
+        }
+        long timeInterval_microsec = captureDuration.count() / timeIntervalsNum;
+        std::chrono::duration<int, std::micro> timeInterval(timeInterval_microsec);             
+        int previousPacketCount = 0;
+        float previousSumPacketSize = 0;
         
         // Iterate over all packets and collect statistics
         for (; i != sniffer.end(); i++) {                  
             // Aidmar            
-            //std::chrono::microseconds lastPktTimestamp = i->timestamp();
-            //Tins::Timestamp tt = i->timestamp();                        
-            //std::chrono::microseconds currentCaptureDuration = lastPktTimestamp - firstTimestamp;
-            //std::chrono::microseconds barrier =  timeIntervalCounter*timeInterval;
+            std::chrono::microseconds lastPktTimestamp = i->timestamp();
+            std::chrono::microseconds currentCaptureDuration = lastPktTimestamp - firstTimestamp;
+            std::chrono::microseconds barrier =  timeIntervalCounter*timeInterval;
             // For each interval
-            /*if(currentCaptureDuration>barrier){                    
+            if(currentCaptureDuration>barrier){                    
                 stats.addIntervalStat(timeInterval, intervalStartTimestamp, lastPktTimestamp, previousPacketCount, previousSumPacketSize);
                 timeIntervalCounter++;   
                 intervalStartTimestamp = lastPktTimestamp;
                 previousPacketCount = stats.getPacketCount();
                 previousSumPacketSize = stats.getSumPacketSize();
-            }*/ 
+            } 
             
             stats.incrementPacketCount();
             this->process_packets(*i);                    

+ 4 - 4
code_boost/src/cxx/statistics.cpp

@@ -165,21 +165,21 @@ void statistics::addIntervalStat(std::chrono::duration<int, std::micro> interval
     // Add packet rate for each IP to ip_statistics map
     calculateIPIntervalPacketRate(interval, intervalStartTimestamp);
     
-    std::vector<float> ipEntopies = calculateLastIntervalIPsEntropy(intervalStartTimestamp); 
-    std::vector<float> ipCumEntopies = calculateIPsCumEntropy();    
+    //std::vector<float> ipEntopies = calculateLastIntervalIPsEntropy(intervalStartTimestamp); 
+    //std::vector<float> ipCumEntopies = calculateIPsCumEntropy();    
     std::string lastPktTimestamp_s = std::to_string(intervalEndTimestamp.count());
     
     interval_statistics[lastPktTimestamp_s].pkts_count = packetCount - previousPacketCount;  
     interval_statistics[lastPktTimestamp_s].kbytes = (float(sumPacketSize - previousSumPacketSize) / 1024);
     
-    if(ipEntopies.size()>1){
+    /*if(ipEntopies.size()>1){
         interval_statistics[lastPktTimestamp_s].ip_src_entropy = ipEntopies[0];
         interval_statistics[lastPktTimestamp_s].ip_dst_entropy = ipEntopies[1];
     }
     if(ipCumEntopies.size()>1){
         interval_statistics[lastPktTimestamp_s].ip_src_cum_entropy = ipCumEntopies[0];
         interval_statistics[lastPktTimestamp_s].ip_dst_cum_entropy = ipCumEntopies[1];
-    }
+    }*/
 }        
 
 // Aidmar