|
1 /* |
|
2 * Copyright (C) 2013 Square, Inc. |
|
3 * |
|
4 * Licensed under the Apache License, Version 2.0 (the "License"); |
|
5 * you may not use this file except in compliance with the License. |
|
6 * You may obtain a copy of the License at |
|
7 * |
|
8 * http://www.apache.org/licenses/LICENSE-2.0 |
|
9 * |
|
10 * Unless required by applicable law or agreed to in writing, software |
|
11 * distributed under the License is distributed on an "AS IS" BASIS, |
|
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
|
13 * See the License for the specific language governing permissions and |
|
14 * limitations under the License. |
|
15 */ |
|
16 package com.squareup.picasso; |
|
17 |
|
18 import android.util.Log; |
|
19 import java.io.PrintWriter; |
|
20 import java.io.StringWriter; |
|
21 |
|
22 /** Represents all stats for a {@link Picasso} instance at a single point in time. */ |
|
23 public class StatsSnapshot { |
|
24 private static final String TAG = "Picasso"; |
|
25 |
|
26 public final int maxSize; |
|
27 public final int size; |
|
28 public final long cacheHits; |
|
29 public final long cacheMisses; |
|
30 public final long totalOriginalBitmapSize; |
|
31 public final long totalTransformedBitmapSize; |
|
32 public final long averageOriginalBitmapSize; |
|
33 public final long averageTransformedBitmapSize; |
|
34 public final int originalBitmapCount; |
|
35 public final int transformedBitmapCount; |
|
36 |
|
37 public final long timeStamp; |
|
38 |
|
39 public StatsSnapshot(int maxSize, int size, long cacheHits, long cacheMisses, |
|
40 long totalOriginalBitmapSize, long totalTransformedBitmapSize, long averageOriginalBitmapSize, |
|
41 long averageTransformedBitmapSize, int originalBitmapCount, int transformedBitmapCount, |
|
42 long timeStamp) { |
|
43 this.maxSize = maxSize; |
|
44 this.size = size; |
|
45 this.cacheHits = cacheHits; |
|
46 this.cacheMisses = cacheMisses; |
|
47 this.totalOriginalBitmapSize = totalOriginalBitmapSize; |
|
48 this.totalTransformedBitmapSize = totalTransformedBitmapSize; |
|
49 this.averageOriginalBitmapSize = averageOriginalBitmapSize; |
|
50 this.averageTransformedBitmapSize = averageTransformedBitmapSize; |
|
51 this.originalBitmapCount = originalBitmapCount; |
|
52 this.transformedBitmapCount = transformedBitmapCount; |
|
53 this.timeStamp = timeStamp; |
|
54 } |
|
55 |
|
56 /** Prints out this {@link StatsSnapshot} into log. */ |
|
57 public void dump() { |
|
58 StringWriter logWriter = new StringWriter(); |
|
59 dump(new PrintWriter(logWriter)); |
|
60 Log.i(TAG, logWriter.toString()); |
|
61 } |
|
62 |
|
63 /** Prints out this {@link StatsSnapshot} with the the provided {@link PrintWriter}. */ |
|
64 public void dump(PrintWriter writer) { |
|
65 writer.println("===============BEGIN PICASSO STATS ==============="); |
|
66 writer.println("Memory Cache Stats"); |
|
67 writer.print(" Max Cache Size: "); |
|
68 writer.println(maxSize); |
|
69 writer.print(" Cache Size: "); |
|
70 writer.println(size); |
|
71 writer.print(" Cache % Full: "); |
|
72 writer.println((int) Math.ceil((float) size / maxSize * 100)); |
|
73 writer.print(" Cache Hits: "); |
|
74 writer.println(cacheHits); |
|
75 writer.print(" Cache Misses: "); |
|
76 writer.println(cacheMisses); |
|
77 writer.println("Bitmap Stats"); |
|
78 writer.print(" Total Bitmaps Decoded: "); |
|
79 writer.println(originalBitmapCount); |
|
80 writer.print(" Total Bitmap Size: "); |
|
81 writer.println(totalOriginalBitmapSize); |
|
82 writer.print(" Total Transformed Bitmaps: "); |
|
83 writer.println(transformedBitmapCount); |
|
84 writer.print(" Total Transformed Bitmap Size: "); |
|
85 writer.println(totalTransformedBitmapSize); |
|
86 writer.print(" Average Bitmap Size: "); |
|
87 writer.println(averageOriginalBitmapSize); |
|
88 writer.print(" Average Transformed Bitmap Size: "); |
|
89 writer.println(averageTransformedBitmapSize); |
|
90 writer.println("===============END PICASSO STATS ==============="); |
|
91 writer.flush(); |
|
92 } |
|
93 |
|
94 @Override public String toString() { |
|
95 return "StatsSnapshot{" |
|
96 + "maxSize=" |
|
97 + maxSize |
|
98 + ", size=" |
|
99 + size |
|
100 + ", cacheHits=" |
|
101 + cacheHits |
|
102 + ", cacheMisses=" |
|
103 + cacheMisses |
|
104 + ", totalOriginalBitmapSize=" |
|
105 + totalOriginalBitmapSize |
|
106 + ", totalTransformedBitmapSize=" |
|
107 + totalTransformedBitmapSize |
|
108 + ", averageOriginalBitmapSize=" |
|
109 + averageOriginalBitmapSize |
|
110 + ", averageTransformedBitmapSize=" |
|
111 + averageTransformedBitmapSize |
|
112 + ", originalBitmapCount=" |
|
113 + originalBitmapCount |
|
114 + ", transformedBitmapCount=" |
|
115 + transformedBitmapCount |
|
116 + ", timeStamp=" |
|
117 + timeStamp |
|
118 + '}'; |
|
119 } |
|
120 } |