Flutter Engine
The Flutter Engine
SkDiscardableMemoryPool.h
Go to the documentation of this file.
1/*
2 * Copyright 2013 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef SkDiscardableMemoryPool_DEFINED
9#define SkDiscardableMemoryPool_DEFINED
10
13
14#ifndef SK_LAZY_CACHE_STATS
15 #ifdef SK_DEBUG
16 #define SK_LAZY_CACHE_STATS 1
17 #else
18 #define SK_LAZY_CACHE_STATS 0
19 #endif
20#endif
21
22/**
23 * An implementation of Discardable Memory that manages a fixed-size
24 * budget of memory. When the allocated memory exceeds this size,
25 * unlocked blocks of memory are purged. If all memory is locked, it
26 * can exceed the memory-use budget.
27 */
29public:
30 virtual size_t getRAMUsed() = 0;
31 virtual void setRAMBudget(size_t budget) = 0;
32 virtual size_t getRAMBudget() = 0;
33
34 /** purges all unlocked DMs */
35 virtual void dumpPool() = 0;
36
37 #if SK_LAZY_CACHE_STATS
38 /**
39 * These two values are a count of the number of successful and
40 * failed calls to SkDiscardableMemory::lock() for all DMs managed
41 * by this pool.
42 */
43 virtual int getCacheHits() = 0;
44 virtual int getCacheMisses() = 0;
45 virtual void resetCacheHitsAndMisses() = 0;
46 #endif
47
48 /**
49 * This non-global pool can be used for unit tests to verify that
50 * the pool works.
51 */
53};
54
55/**
56 * Returns (and creates if needed) a threadsafe global
57 * SkDiscardableMemoryPool.
58 */
60
61#if !defined(SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE)
62#define SK_DEFAULT_GLOBAL_DISCARDABLE_MEMORY_POOL_SIZE (128 * 1024 * 1024)
63#endif
64
65#endif // SkDiscardableMemoryPool_DEFINED
SkDiscardableMemoryPool * SkGetGlobalDiscardableMemoryPool()
virtual void dumpPool()=0
static sk_sp< SkDiscardableMemoryPool > Make(size_t size)
virtual size_t getRAMUsed()=0
virtual void setRAMBudget(size_t budget)=0
virtual size_t getRAMBudget()=0
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size
Definition: switches.h:259