baseline_test.h

来自「ace开发环境 用来开发网络程序 其运用了设计模式、多平台、C++等多种知识」· C头文件 代码 · 共 154 行

H
154
字号
// -*- C++ -*-// $Id: Baseline_Test.h 73790 2006-07-27 20:43:46Z wotte $#ifndef ACE_BASELINE_TEST_H#define ACE_BASELINE_TEST_H#include "Synch_Lib/Benchmark_Base.h"#if defined (ACE_HAS_THREADS)#include "ace/Profile_Timer.h"#include "ace/svc_export.h"#include "ace/Barrier.h"const unsigned long DEFAULT_ITERATIONS = 1000000;class ACE_Svc_Export Baseline_Test_Base : public Benchmark_Base{  // = TITLE  //     This class identifies itself as Benmarking Performance Test class.public:  enum {    TEST_LOCK,    TEST_READLOCK,    TEST_WRITELOCK  };  virtual int init (int argc, ACE_TCHAR *argv[]);  // Standard initializing method for Baseline Test.  int parse_args (int argc, ACE_TCHAR *argv[]);  // Parsing the svc.conf file arguments.  virtual int acquire () = 0;  virtual int release () = 0;  // These two method are used to test try_acquire performance.  virtual int test_acquire_release () = 0;  virtual int test_try_lock () = 0;  // Real test methods.  virtual int yield_method ();  // Query the yield method used.  virtual void yield ();  // Yield to other thread.  size_t iteration (void);  // Access methods.protected:  Baseline_Test_Base (void);  int yield_method_;  // Should we your thr_yield or sleep (0).  size_t iteration_;  // Total number of operations.  <iterations_>  int what_;  // What test should be performed?};class ACE_Svc_Export Baseline_Test_Options{  // = TITLE  //    This class holds the global settings for Baseline Test.public:  friend class Baseline_Test;  enum  {    USE_SLEEP_ZERO,    USE_THR_YIELD  };  Baseline_Test_Options (void);  // ctor.  int parse_args (int argc, ACE_TCHAR *argv[]);  // Parse and set the Baseline_Test options and flags.  int reset_params (size_t iteration, int yield);  // Reset test parameters for next round.  int test_try_lock (void);  // Return test configuration.  void start_inc_timer (void);  void stop_inc_timer (void);  // Start/stop measuring time.  int inc_loop_counter (void);  // Returns  size_t current_iteration (void);  // Return <iteration_>.  void print_result (void);  // Print out the result.private:  int test_try_lock_;  // A flag indicates whether we are testing try_lock or lock and  // release.  int verbose_;  // Print out the result in verbose mode.  int current_yield_method_;  // yield or sleep.  size_t current_iteration_;  // Number of iteration.  size_t total_iteration_;  // Total number of target iteration.  ACE_High_Res_Timer timer;  // Profile timer result.};extern Baseline_Test_Options baseline_options;class ACE_Svc_Export Baseline_Test : public Benchmark_Method_Base{public:  Baseline_Test (void);  virtual int init (int argc, ACE_TCHAR *argv[]);  virtual int pre_run_test (Benchmark_Base *bp);  virtual int run_test (void);  virtual int post_run_test (void);  virtual int valid_test_object (Benchmark_Base *);  static void *hold_lock (void * arg);  // This method runs in a separate thread, and is used to hold the lock while  // we test the performance of try lock.private:  Baseline_Test_Base *current_test_;  ACE_Barrier get_lock_;  ACE_Barrier let_go_lock_;};ACE_SVC_FACTORY_DECLARE (Baseline_Test)#if defined (__ACE_INLINE__)#include "Baseline_Test.inl"#endif /* __ACE_INLINE__ */#endif  /* ACE_HAS_THREADS */#endif /* ACE_BASELINE_TEST_H */

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?