public override void Setup()
 {
     _atomicLong           = new AtomicLong();
     _paddedAtomicLong     = new PaddedAtomicLong();
     _stripedLongAdder     = new StripedLongAdder();
     _threadLocalLongAdder = new ThreadLocalLongAdder();
 }
Ejemplo n.º 2
0
        public CumulativeSum()
        {
            /*
             * We support both LongAdder and LongMaxUpdater in a bucket but don't want the memory allocation
             * of all types for each so we only allocate the objects if the HystrixRollingNumberEvent matches
             * the correct type - though we still have the allocation of empty arrays to the given length
             * as we want to keep using the (int)type value for fast random access.
             */

            // initialize the array of LongAdders
            var values = Enum.GetValues(typeof(HystrixRollingNumberEvent)).Cast <HystrixRollingNumberEvent>().ToArray();

            adderForCounterType = new StripedLongAdder[values.Length];
            foreach (var value in values)
            {
                if (value.IsCounter())
                {
                    adderForCounterType[(int)value] = new StripedLongAdder();
                }
            }

            updaterForCounterType = new LongMaxUpdater[values.Length];
            foreach (var value in values)
            {
                if (value.IsMaxUpdater())
                {
                    updaterForCounterType[(int)value] = new LongMaxUpdater();
                    // initialize to 0 otherwise it is Long.MIN_VALUE
                    updaterForCounterType[(int)value].Update(0);
                }
            }
        }
Ejemplo n.º 3
0
        private static void ValueAdderIncrement()
        {
            var atomicLong = new AtomicLong(0L);
            BenchmarkRunner.Run("AtomicLong.Increment", () => atomicLong.Increment());

            var threadLocalAdder = new ThreadLocalLongAdder(0L);
            BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());

            var strippedLongAdder = new StripedLongAdder(0L);
            BenchmarkRunner.Run("StripedLongAdder.Increment", () => strippedLongAdder.Increment());
        }
Ejemplo n.º 4
0
        private static void ValueAdderIncrement()
        {
            var atomicLong = new AtomicLong(0L);

            BenchmarkRunner.Run("AtomicLong.Increment", () => atomicLong.Increment());

            var threadLocalAdder = new ThreadLocalLongAdder(0L);

            BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());

            var strippedLongAdder = new StripedLongAdder(0L);

            BenchmarkRunner.Run("StripedLongAdder.Increment", () => strippedLongAdder.Increment());
        }
Ejemplo n.º 5
0
 public ConsumerStatsRecorder()
 {
     ThroughputFormat.NumberDecimalSeparator = "0.00";
     _numMsgsReceived         = new StripedLongAdder();
     _numBytesReceived        = new StripedLongAdder();
     _numReceiveFailed        = new StripedLongAdder();
     _numBatchReceiveFailed   = new StripedLongAdder();
     _numAcksSent             = new StripedLongAdder();
     _numAcksFailed           = new StripedLongAdder();
     _totalMsgsReceived       = new StripedLongAdder();
     _totalBytesReceived      = new StripedLongAdder();
     _totalReceiveFailed      = new StripedLongAdder();
     _totalBatchReceiveFailed = new StripedLongAdder();
     _totalAcksSent           = new StripedLongAdder();
     _totalAcksFailed         = new StripedLongAdder();
 }
Ejemplo n.º 6
0
 public ProducerStatsRecorder(ActorSystem system, string producerName, string topic, long pendingQueueSize)
 {
     _system           = system;
     _producerName     = producerName;
     _topic            = topic;
     _pendingQueueSize = pendingQueueSize;
     _log = system.Log;
     Dec.NumberDecimalSeparator = "0.000";
     ThroughputFormat.NumberDecimalSeparator = "0.00";
     _numMsgsSent       = new StripedLongAdder();
     _numBytesSent      = new StripedLongAdder();
     _numSendFailed     = new StripedLongAdder();
     _numAcksReceived   = new StripedLongAdder();
     _totalMsgsSent     = new StripedLongAdder();
     _totalBytesSent    = new StripedLongAdder();
     _totalSendFailed   = new StripedLongAdder();
     _totalAcksReceived = new StripedLongAdder();
 }
        /// <inheritdoc />
        public void Update(long value)
        {
            StripedLongAdder bucketCounter = null;

            foreach (var kvp in _buckets)
            {
                if (kvp.Key < value)
                {
                    break;
                }

                bucketCounter = kvp.Value;
            }


            bucketCounter.Increment();
            _sum.Add(value);
            _counter.Increment();
        }
Ejemplo n.º 8
0
 public ProducerStatsRecorder(long statsIntervalSeconds, ProducerConfigurationData conf, ActorSystem system, string producerName, string topic, long pendingQueueSize)
 {
     _system           = system;
     _producerName     = producerName;
     _topic            = topic;
     _pendingQueueSize = pendingQueueSize;
     _log = system.Log;
     Dec.NumberDecimalSeparator = "0.000";
     ThroughputFormat.NumberDecimalSeparator = "0.00";
     _statsIntervalSeconds = statsIntervalSeconds;
     _numMsgsSent          = new StripedLongAdder();
     _numBytesSent         = new StripedLongAdder();
     _numSendFailed        = new StripedLongAdder();
     _numAcksReceived      = new StripedLongAdder();
     _totalMsgsSent        = new StripedLongAdder();
     _totalBytesSent       = new StripedLongAdder();
     _totalSendFailed      = new StripedLongAdder();
     _totalAcksReceived    = new StripedLongAdder();
     Init(conf);
 }
Ejemplo n.º 9
0
        static void Main(string[] args)
        {
            AtomicLong[] data = new AtomicLong[0];

            BenchmarkRunner.DefaultMaxThreads   = 8;
            BenchmarkRunner.DefaultTotalSeconds = 5;

            var strippedLongAdder = new StripedLongAdder(0L);
            var threadLocalAdder  = new ThreadLocalLongAdder(0L);

            //BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());
            //var sz = ThreadLocalLongAdder.GetEstimatedFootprintInBytes(threadLocalAdder);

            BenchmarkRunner.Run("StripedLongAdder.Increment", () => strippedLongAdder.Increment());


            //BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());

            //BenchmarkRunner.Run("NoOp", () => { });

            ValueAdderIncrement();
        }
Ejemplo n.º 10
0
        static void Main(string[] args)
        {
            AtomicLong[] data = new AtomicLong[0];

            BenchmarkRunner.DefaultMaxThreads = 8;
            BenchmarkRunner.DefaultTotalSeconds = 5;

            var strippedLongAdder = new StripedLongAdder(0L);
            var threadLocalAdder = new ThreadLocalLongAdder(0L);

            //BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());
            //var sz = ThreadLocalLongAdder.GetEstimatedFootprintInBytes(threadLocalAdder);

            BenchmarkRunner.Run("StripedLongAdder.Increment", () => strippedLongAdder.Increment());


            //BenchmarkRunner.Run("ThreadLocalLongAdder.Increment", () => threadLocalAdder.Increment());

            //BenchmarkRunner.Run("NoOp", () => { });

            ValueAdderIncrement();
        }
Ejemplo n.º 11
0
 public ConsumerStatsRecorder(ActorSystem system, ConsumerConfigurationData <T> conf, string topic, string consumerName, string subscription, long statsIntervalSeconds)
 {
     _system       = system;
     _log          = system.Log;
     _topic        = topic;
     _name         = consumerName;
     _subscription = subscription;
     ThroughputFormat.NumberDecimalSeparator = "0.00";
     _statsIntervalSeconds    = statsIntervalSeconds;
     _numMsgsReceived         = new StripedLongAdder();
     _numBytesReceived        = new StripedLongAdder();
     _numReceiveFailed        = new StripedLongAdder();
     _numBatchReceiveFailed   = new StripedLongAdder();
     _numAcksSent             = new StripedLongAdder();
     _numAcksFailed           = new StripedLongAdder();
     _totalMsgsReceived       = new StripedLongAdder();
     _totalBytesReceived      = new StripedLongAdder();
     _totalReceiveFailed      = new StripedLongAdder();
     _totalBatchReceiveFailed = new StripedLongAdder();
     _totalAcksSent           = new StripedLongAdder();
     _totalAcksFailed         = new StripedLongAdder();
     Init(conf);
 }
Ejemplo n.º 12
0
 public override void Setup()
 {
     _num = new StripedLongAdder();
 }
Ejemplo n.º 13
0
 public void Can_get_estimated_size()
 {
     _num.Add(7L);
     StripedLongAdder.GetEstimatedFootprintInBytes(_num).Should().NotBe(0);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Returns the size in bytes occupied by an Striped64 instance.
 /// </summary>
 /// <param name="instance">instance for whch to calculate the size.</param>
 /// <returns>The size of the instance in bytes.</returns>
 public static int GetEstimatedFootprintInBytes(StripedLongAdder instance)
 {
     return(Striped64.GetEstimatedFootprintInBytes(instance));
 }
Ejemplo n.º 15
0
 public void Setup()
 {
     _num = new StripedLongAdder();
 }