author | Seth Fowler <seth@mozilla.com> |
Thu, 08 Jan 2015 00:29:39 -0800 | |
changeset 222734 | 25d6527235cabab1a0e25e3dd6126120e39e3dde |
parent 222733 | b4cdc04f65550567f05b881bc4a89224a751b8c9 |
child 222735 | a49774cdd1b18e45f76819a7a2cd2da45556efaa |
push id | 28073 |
push user | kwierso@gmail.com |
push date | Fri, 09 Jan 2015 01:08:23 +0000 |
treeherder | mozilla-central@b3f84cf78dc2 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | tn |
bugs | 1116746 |
milestone | 37.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/image/src/RasterImage.cpp +++ b/image/src/RasterImage.cpp @@ -124,23 +124,16 @@ static int32_t sMaxDecodeCount = 0; PR_BEGIN_MACRO \ if (!(arg)) { \ LOG_CONTAINER_ERROR; \ DoError(); \ return rv; \ } \ PR_END_MACRO - - -static int num_containers; -static int num_discardable_containers; -static int64_t total_source_bytes; -static int64_t discardable_source_bytes; - class ScaleRunner : public nsRunnable { enum ScaleState { eNew, eReady, eFinish, eFinishWithError @@ -304,56 +297,33 @@ RasterImage::RasterImage(ProgressTracker mPendingAnimation(false), mAnimationFinished(false), mWantFullDecode(false), mPendingError(false) { mProgressTrackerInit = new ProgressTrackerInit(this, aProgressTracker); Telemetry::GetHistogramById(Telemetry::IMAGE_DECODE_COUNT)->Add(0); - - // Statistics - num_containers++; } //****************************************************************************** RasterImage::~RasterImage() { - // Discardable statistics - if (mDiscardable) { - num_discardable_containers--; - discardable_source_bytes -= mSourceData.Length(); - - PR_LOG (GetCompressedImageAccountingLog(), PR_LOG_DEBUG, - ("CompressedImageAccounting: destroying RasterImage %p. " - "Total Containers: %d, Discardable containers: %d, " - "Total source bytes: %lld, Source bytes for discardable containers %lld", - this, - num_containers, - num_discardable_containers, - total_source_bytes, - discardable_source_bytes)); - } - if (mDecoder) { // Kill off our decode request, if it's pending. (If not, this call is // harmless.) ReentrantMonitorAutoEnter lock(mDecodingMonitor); DecodePool::StopDecoding(this); mDecoder = nullptr; } // Release all frames from the surface cache. SurfaceCache::RemoveImage(ImageKey(this)); mAnim = nullptr; - - // Total statistics - num_containers--; - total_source_bytes -= mSourceData.Length(); } /* static */ void RasterImage::Initialize() { // Create our singletons now, so we don't have to worry about what thread // they're created on. DecodePool::Singleton(); @@ -381,22 +351,16 @@ RasterImage::Init(const char* aMimeType, "Transient images can't be discardable or decode-on-draw"); // Store initialization data mSourceDataMimeType.Assign(aMimeType); mDiscardable = !!(aFlags & INIT_FLAG_DISCARDABLE); mDecodeOnDraw = !!(aFlags & INIT_FLAG_DECODE_ON_DRAW); mTransient = !!(aFlags & INIT_FLAG_TRANSIENT); - // Statistics - if (mDiscardable) { - num_discardable_containers++; - discardable_source_bytes += mSourceData.Length(); - } - // Lock this image's surfaces in the SurfaceCache if we're not discardable. if (!mDiscardable) { SurfaceCache::LockImage(ImageKey(this)); } // Instantiate the decoder nsresult rv = InitDecoder(/* aDoSizeDecode = */ true); CONTAINER_ENSURE_SUCCESS(rv); @@ -1245,31 +1209,16 @@ RasterImage::AddSourceData(const char *a if (!newElem) return NS_ERROR_OUT_OF_MEMORY; if (mDecoder) { DecodePool::Singleton()->RequestDecode(this); } } - // Statistics - total_source_bytes += aCount; - if (mDiscardable) - discardable_source_bytes += aCount; - PR_LOG (GetCompressedImageAccountingLog(), PR_LOG_DEBUG, - ("CompressedImageAccounting: Added compressed data to RasterImage %p (%s). " - "Total Containers: %d, Discardable containers: %d, " - "Total source bytes: %lld, Source bytes for discardable containers %lld", - this, - mSourceDataMimeType.get(), - num_containers, - num_discardable_containers, - total_source_bytes, - discardable_source_bytes)); - return NS_OK; } /* Note! buf must be declared as char buf[9]; */ // just used for logging and hashing the header static void get_header_str (char *buf, char *data, size_t data_len) { @@ -1445,47 +1394,29 @@ RasterImage::Discard() // We should never discard when we have an active decoder NS_ABORT_IF_FALSE(!mDecoder, "Asked to discard with open decoder!"); // As soon as an image becomes animated, it becomes non-discardable and any // timers are cancelled. NS_ABORT_IF_FALSE(!mAnim, "Asked to discard for animated image!"); - // For post-operation logging - int old_frame_count = GetNumFrames(); - // Delete all the decoded frames. SurfaceCache::RemoveImage(ImageKey(this)); // Flag that we no longer have decoded frames for this image mDecoded = false; mFrameCount = 0; // Notify that we discarded if (mProgressTracker) { mProgressTracker->OnDiscard(); } mDecodeStatus = DecodeStatus::INACTIVE; - - // Log - PR_LOG(GetCompressedImageAccountingLog(), PR_LOG_DEBUG, - ("CompressedImageAccounting: discarded uncompressed image " - "data from RasterImage %p (%s) - %d frames (cached count: %d); " - "Total Containers: %d, Discardable containers: %d, " - "Total source bytes: %lld, Source bytes for discardable containers %lld", - this, - mSourceDataMimeType.get(), - old_frame_count, - GetNumFrames(), - num_containers, - num_discardable_containers, - total_source_bytes, - discardable_source_bytes)); } bool RasterImage::CanDiscard() { return mHasSourceData && // ...have the source data... !mDecoder && // Can't discard with an open decoder !mAnim; // Can never discard animated images }