在Jerry的其余文章曾经提到,Salesforce里运行时对象均是经过静态存储的元数据,通过Runtime engine加工而成的。缓存
Because metadata is a key ingredient of Force.com applications, the system’s runtime engine must optimize access to metadata; otherwise, frequent metadata access would prevent the service from scaling.服务器
既然元数据在salesforce平台中扮演了如此重要的角色,那么运行时引擎对元数据的高效访问就成为一个重中之重的话题,若是达不到这个目标,频繁的元数据低效访问将没法保证平台上提供服务的高扩展性 high scalability。app
With this potential bottleneck in mind, Force.com uses massive and sophisticated metadata caches to maintain the most recently used metadata in memory, avoid performance-sapping disk I/O and code recompilations, and improve application response times.this
Salesforce平台设计了不少复杂的元数据缓存机制,确保最近访问过的元数据驻留在内存里,避免了磁盘IO的开销和代码的重编译,从而确保整个应用的响应时间不会影响元数据访问受到影响。scala
ABAP Netweaver也有相似的设计,把不少须要高效访问的数据特别是应用程序的元数据存储到应用服务器的shared memory共享内存里。设计
使用事务码SHMM查看shared memory内容:code
SAP HANA里还能经过系统视图system view M_METADATA_CACHE_STATISTICS来对元数据的缓存访问进行分析:orm
要获取更多Jerry的原创文章,请关注公众号"汪子熙": 对象