Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/testing/mozbase/mozpower/mozpower/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quelle  macintelpower.py   Sprache: Python

 
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
import time

from .intel_power_gadget import IntelPowerGadget, IPGResultsHandler
from .powerbase import PowerBase


class MacIntelPower(PowerBase):
    """MacIntelPower is the OS and CPU dependent class for
    power measurement gathering on Mac Intel-based hardware.

    ::

       from mozpower.macintelpower import MacIntelPower

       # duration and output_file_path are used in IntelPowerGadget
       mip = MacIntelPower(ipg_measure_duration=600, output_file_path='power-testing')

       mip.initialize_power_measurements()
       # Run test...
       mip.finalize_power_measurements(test_name='raptor-test-name')

       perfherder_data = mip.get_perfherder_data()
    """

    def __init__(self, logger_name="mozpower", **kwargs):
        """Initializes the MacIntelPower object.

        :param str logger_name: logging logger name. Defaults to 'mozpower'.
        :param dict kwargs: optional keyword arguments passed to IntelPowerGadget.
        """
        PowerBase.__init__(self, logger_name=logger_name, os="darwin", cpu="intel")
        self.ipg = IntelPowerGadget(self.ipg_path, **kwargs)
        self.ipg_results_handler = None
        self.start_time = None
        self.end_time = None
        self.perfherder_data = {}

    def initialize_power_measurements(self):
        """Starts power measurement gathering through IntelPowerGadget."""
        self._logger.info("Initializing power measurements...")

        # Start measuring
        self.ipg.start_ipg()

        # Record start time to get an approximation of run time
        self.start_time = time.time()

    def finalize_power_measurements(
        self, test_name="power-testing", output_dir_path="", **kwargs
    ):
        """Stops power measurement gathering through IntelPowerGadget, cleans the data,
        and produces partial perfherder formatted data that is stored in perfherder_data.

        :param str test_name: name of the test that was run.
        :param str output_dir_path: directory to store output files.
        :param dict kwargs: contains optional arguments to stop_ipg.
        """
        self._logger.info("Finalizing power measurements...")
        self.end_time = time.time()

        # Wait until Intel Power Gadget is done, then clean the data
        # and then format it
        self.ipg.stop_ipg(**kwargs)

        # Handle the results and format them to a partial perfherder format
        if not output_dir_path:
            output_dir_path = self.ipg.output_dir_path

        self.ipg_results_handler = IPGResultsHandler(
            self.ipg.output_files,
            output_dir_path,
            ipg_measure_duration=self.ipg.ipg_measure_duration,
            sampling_rate=self.ipg.sampling_rate,
            logger_name=self.logger_name,
        )

        self.ipg_results_handler.clean_ipg_data()
        self.perfherder_data = (
            self.ipg_results_handler.format_ipg_data_to_partial_perfherder(
                self.end_time - self.start_time, test_name
            )
        )

    def get_perfherder_data(self):
        """Returns the perfherder data output that was produced.

        :returns: dict
        """
        return self.perfherder_data

Messung V0.5
C=93 H=93 G=92

¤ Dauer der Verarbeitung: 0.13 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.