Stay organized with collections
Save and categorize content based on your preferences.
Source code for google.appengine.api.quota
#!/usr/bin/env python
#
# Copyright 2007 Google Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
"""Access to quota usage for this application."""
import os
import warnings
try:
from google.appengine.runtime import apiproxy
except ImportError:
apiproxy = None
def __get_request_cpu_usage():
"""Get the amount of CPU used so far for the current request.
Returns the number of megacycles used so far for the current
request. Does not include CPU used by API calls.
Does nothing when used in the dev_appserver.
"""
warnings.warn('get_request_cpu_usage may not always return correct values',
DeprecationWarning,
stacklevel=2)
if apiproxy:
return apiproxy.GetRequestCpuUsage()
return 0
if os.environ.get('APPENGINE_RUNTIME') != 'python27':
get_request_cpu_usage = __get_request_cpu_usage
[docs]def get_request_api_cpu_usage():
"""Get the amount of CPU used so far by API calls during the current request.
Returns the number of megacycles used so far by API calls for the current
request. Does not include CPU used by code in the request itself.
Does nothing when used in the dev_appserver.
"""
if apiproxy:
return apiproxy.GetRequestApiCpuUsage()
return 0
MCYCLES_PER_SECOND = 1200.0
"""Megacycles to CPU seconds. Convert by using a 1.2 GHz 64-bit x86 CPU."""
[docs]def megacycles_to_cpu_seconds(mcycles):
"""Convert an input value in megacycles to CPU-seconds.
Returns a double representing the CPU-seconds the input megacycle value
converts to.
"""
return mcycles / MCYCLES_PER_SECOND
[docs]def cpu_seconds_to_megacycles(cpu_secs):
"""Convert an input value in CPU-seconds to megacycles.
Returns an integer representing the megacycles the input CPU-seconds value
converts to.
"""
return int(cpu_secs * MCYCLES_PER_SECOND)
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-06-16 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-06-16 UTC."],[[["This code provides functions to access and manage quota usage, specifically CPU usage, for applications."],["It includes functions to retrieve the amount of CPU used for the current request, excluding API calls, using `get_request_cpu_usage`."],["It also offers a function, `get_request_api_cpu_usage`, to retrieve the CPU usage specifically attributed to API calls within the current request."],["The code provides conversion utilities between megacycles and CPU-seconds, allowing for unit conversion via `megacycles_to_cpu_seconds` and `cpu_seconds_to_megacycles`."],["The code is designed to work within the Google App Engine environment and has specific behaviors when run in the development server or in different Python environments."]]],[]]