コード例 #1
0
 public void TestSetup()
 {
     collections = new List <GarbageCollectionInfo>();
     monitor     = new GarbageCollectionMonitor();
     monitor.LogCollections(new SynchronousConsoleLog(), null);
     monitor.Subscribe(this);
 }
コード例 #2
0
        private void RegisterGcMonitor(SystemMetricsSettings settings, BuildContext context, IMetricContext metricContext)
        {
            var gcMonitor = new GarbageCollectionMonitor();

            context.HostExtensions.AsMutable().Add(gcMonitor);
            context.DisposableHostExtensions.Add(gcMonitor);

            if (settings.EnableGcEventsLogging)
            {
                context.DisposableHostExtensions.Add(gcMonitor.LogCollections(context.Log, gc => gc.Duration >= settings.GcMinimumDurationForLogging));
            }

            if (settings.EnableGcEventsMetrics)
            {
                context.DisposableHostExtensions.Add(gcMonitor.ReportMetrics(metricContext));
            }
        }
コード例 #3
0
        /// <summary>
        /// Create a new instance
        /// </summary>
        //JAVA TO C# CONVERTER WARNING: The following constructor is declared outside of its associated class:
        //ORIGINAL LINE: public DefaultAudioPlayerManager()
        public DefaultAudioPlayerManager()
        {
            sourceManagers = new List <>();

            // Executors
            trackPlaybackExecutorService = new ThreadPoolExecutor(1, int.MaxValue, 10, TimeUnit.SECONDS, new SynchronousQueue(), new DaemonThreadFactory("playback"));
            trackInfoExecutorService     = ExecutorTools.createEagerlyScalingExecutor(1, DEFAULT_LOADER_POOL_SIZE, TimeUnit.SECONDS.toMillis(30), LOADER_QUEUE_CAPACITY, new DaemonThreadFactory("info-loader"));
            scheduledExecutorService     = Executors.newScheduledThreadPool(1, new DaemonThreadFactory("manager"));
            orderedInfoExecutor          = new OrderedExecutor(trackInfoExecutorService);

            // Configuration
            trackStuckThreshold = TimeUnit.MILLISECONDS.toNanos(10000);
            configuration       = new AudioConfiguration();
            cleanupThreshold    = new AtomicLong(DEFAULT_CLEANUP_THRESHOLD);
            frameBufferDuration = DEFAULT_FRAME_BUFFER_DURATION;
            useSeekGhosting     = true;
            outputHookFactory   = null;

            // Additional services
            remoteNodeManager        = new RemoteNodeManager(this);
            garbageCollectionMonitor = new GarbageCollectionMonitor(scheduledExecutorService);
            lifecycleManager         = new AudioPlayerLifecycleManager(scheduledExecutorService, cleanupThreshold);
            lifecycleManager.initialise();
        }