[svn] * Added ACE for Linux and Windows (Thanks Derex for Linux part and partial Windows part)
* Updated to 6721 and 676 * Fixed TrinityScript logo * Version updated to 0.2.6721.676 --HG-- branch : trunk rename : 6700-670 => 6721-676
This commit is contained in:
@@ -0,0 +1,86 @@
|
||||
// -*- C++ -*-
|
||||
|
||||
//==========================================================================
|
||||
/**
|
||||
* @file Throughput_Stats.h
|
||||
*
|
||||
* $Id: Throughput_Stats.h 80826 2008-03-04 14:51:23Z wotte $
|
||||
*
|
||||
* @author David L. Levine
|
||||
*/
|
||||
//==========================================================================
|
||||
|
||||
|
||||
#ifndef ACE_THROUGHPUT_STATS_H
|
||||
#define ACE_THROUGHPUT_STATS_H
|
||||
|
||||
#include /**/ "ace/pre.h"
|
||||
|
||||
#include /**/ "ace/ACE_export.h"
|
||||
|
||||
#if !defined (ACE_LACKS_PRAGMA_ONCE)
|
||||
# pragma once
|
||||
#endif /* ACE_LACKS_PRAGMA_ONCE */
|
||||
|
||||
#include "ace/Basic_Stats.h"
|
||||
|
||||
ACE_BEGIN_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
/// A simple class to make throughput and latency analysis.
|
||||
/**
|
||||
*
|
||||
* Keep the relevant information to perform throughput and latency
|
||||
* analysis, including:
|
||||
* -# Minimum, Average and Maximum latency
|
||||
* -# Jitter for the latency
|
||||
* -# Linear regression for throughput
|
||||
* -# Accumulate results from several samples to obtain aggregated
|
||||
* results, across several threads or experiments.
|
||||
*
|
||||
* @todo The idea behind this class was to use linear regression to
|
||||
* determine if the throughput was linear or exhibited jitter.
|
||||
* Unfortunately it never worked quite right, so only average
|
||||
* throughput is computed.
|
||||
*/
|
||||
class ACE_Export ACE_Throughput_Stats : public ACE_Basic_Stats
|
||||
{
|
||||
public:
|
||||
/// Constructor
|
||||
ACE_Throughput_Stats (void);
|
||||
|
||||
/// Store one sample
|
||||
void sample (ACE_UINT64 throughput, ACE_UINT64 latency);
|
||||
|
||||
/// Update the values to reflect the stats in @a throughput
|
||||
void accumulate (const ACE_Throughput_Stats &throughput);
|
||||
|
||||
/// Print down the stats
|
||||
void dump_results (const ACE_TCHAR* msg, ACE_UINT32 scale_factor);
|
||||
|
||||
/// Dump the average throughput stats.
|
||||
static void dump_throughput (const ACE_TCHAR *msg,
|
||||
ACE_UINT32 scale_factor,
|
||||
ACE_UINT64 elapsed_time,
|
||||
ACE_UINT32 samples_count);
|
||||
private:
|
||||
/// The last throughput measurement.
|
||||
ACE_UINT64 throughput_last_;
|
||||
|
||||
#if 0
|
||||
/// These are the fields that we should keep to perform linear
|
||||
/// regression
|
||||
//@{
|
||||
///@}
|
||||
ACE_UINT64 throughput_sum_x_;
|
||||
ACE_UINT64 throughput_sum_x2_;
|
||||
ACE_UINT64 throughput_sum_y_;
|
||||
ACE_UINT64 throughput_sum_y2_;
|
||||
ACE_UINT64 throughput_sum_xy_;
|
||||
#endif /* 0 */
|
||||
};
|
||||
|
||||
ACE_END_VERSIONED_NAMESPACE_DECL
|
||||
|
||||
#include /**/ "ace/post.h"
|
||||
|
||||
#endif /* ! ACE_THROUGHPUT_STATS_H */
|
||||
Reference in New Issue
Block a user