/** * Set the limit on memory this Cache may use. * * @param maxMemLimit The limit in bytes */ public void setLimit(long maxMemLimit) { if (maxMemLimit > Runtime.getRuntime().maxMemory()) { throw new IllegalArgumentException("maxMemLimit cannot be more than max heap size"); } mMaxItems = (int) (maxMemLimit / AVG_ITEM_SIZE); SgnLog.v( TAG, "New memory limit: " + maxMemLimit / 1024 + "kb (approx " + mMaxItems + " items)"); }
public JSONObject toDebugJSON() { JSONObject o = toJSON(); try { o.put("start", mStart); o.put("stop", mStop); o.put("clock", mClock.getClass().getSimpleName()); o.put("sub-event-count", mSubEvents.size()); o.put("durationAbs", getDurationAbsolute()); } catch (JSONException e) { SgnLog.d(TAG, e.getMessage(), e); } return o; }
public JSONObject toJSON() { try { JSONObject o = new JSONObject(); o.put("type", mEventType.toString()); o.put("ms", getDuration()); o.put("orientation", mOrientation.toString()); o.put("pages", PageflipUtils.join(",", mPages)); o.put("view_session", mViewSession); return o; } catch (JSONException e) { SgnLog.d(TAG, e.getMessage(), e); } return new JSONObject(); }
private void checkSize() { int size = mCache.size(); if (size > mMaxItems) { float percentToRemove = (float) mPercentToClean / (float) 100; int itemsToRemove = (int) (size * percentToRemove); // least recently accessed item will be the first one iterated Iterator<Entry<String, Cache.Item>> it = mCache.entrySet().iterator(); while (it.hasNext()) { it.next(); it.remove(); if (itemsToRemove-- == 0) { break; } } SgnLog.d(TAG, "Cleaned " + TAG + " new size: " + mCache.size()); } }