在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的原創文章,請關注公衆號"汪子熙": 對象