FAQ: 我怎么保证我的模型是可伸缩的?

本文讨论了如何确保Eclipse模型具备良好的可伸缩性,特别是在处理大型项目时。文章强调了从设计之初就要考虑性能问题的重要性,并提供了一些实践建议,如避免让用户直接持有大型数据结构的引用,采用延迟加载和LRU缓存等技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Eclipse官方FAQ翻译系列

FAQ How can I ensure that my model is scalable?

original link : http://wiki.eclipse.org/FAQ_How_can_I_ensure_that_my_model_is_scalable%3F

 

      由于eScript程序被假定是很小的,我们并没有太在意我们的DOM在内存使用方面的优化。然而,对于其他语言的程序则有越来越大型化的趋势,比如CPascal或者C#,模型每个独立域的定义都必须小心掂量。比如呈现<windows.h>文件(译者注:Win32程序必包含的一个基本头文件,很大),DOM元素就会很容易变得成千甚至上万。

     

      虽然某些性能增强技术可以在你的模型实现中被追加,但最好是从开始就考虑可伸缩性。你的模型的性能的各方面以及构建在其上的工具的性能的各方面应该在系统的体系架构设计时就考虑。特别的,不要让你的API的用户持有到内部大型数据结构对象的引用,这给你的模型提供了最基本的可伸缩性。

 

    当编写一个面对大型系统可以自由伸缩的模型,你必须特别小心你的模型使用的内存量。传统的性能优化技术在这里仍然有用,但延迟加载(lazy loading)和最近最多使用(most recently used: MRU)缓存相对特别有效。必须JDTJava模型,只在元素被访问时才加载。Workspace中的所有Java工程中的Java元素的句柄在任何时刻都不存在于memory中。大多数Java元素实现了可打开(Openable)接口,指示当你调用他们的方法以访问底层结构时,它们是懒加载的(lazily populated)。当不再需要时,所有Openable元素可以被显示的关闭,不过模型(model)维持了一个最近最少使用(least recently used:LRU)缓存,其中是所有已打开元素的引用,模型以此来关闭那些LRU元素(译者注:原文在这里是关闭MRU元素,但我认为应该是LRU,希望大家指正)。即使无法确定客户如何保持到Java元素的引用,Java元素的轻量级抽象层仍允许重型的数据结构被flush(译者注:比如flush到一个磁盘缓存中)。抽象语法树同样依需求而被滞后生成,而一点不再被引用就立刻抛弃(discard

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值