// Copyright 2016 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef CHROME_BROWSER_TASK_MANAGER_SAMPLING_SHARED_SAMPLER_H_ #define CHROME_BROWSER_TASK_MANAGER_SAMPLING_SHARED_SAMPLER_H_ #include <map> #include <memory> #include <optional> #include <utility> #include <vector> #include "base/files/file_path.h" #include "base/functional/callback.h" #include "base/memory/ref_counted.h" #include "base/process/process_handle.h" #include "base/sequence_checker.h" #include "base/task/sequenced_task_runner.h" #include "base/time/time.h" #include "build/build_config.h" namespace task_manager { struct ProcessDataSnapshot; // Defines sampler that will calculate resources for all processes all at once, // on the worker thread. Created by TaskManagerImpl on the UI thread, but used // mainly on a blocking pool thread. // // This exists because on Windows it is much faster to collect a group of // process metrics for all processes all at once using NtQuerySystemInformation // than to query the same data for for each process individually and because // some types like Idle Wakeups can only be collected this way. class SharedSampler : public base::RefCountedThreadSafe<SharedSampler> { … }; } // namespace task_manager #endif // CHROME_BROWSER_TASK_MANAGER_SAMPLING_SHARED_SAMPLER_H_