版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
21/23混合垃圾回收算法的性能评估第一部分混合垃圾回收算法的分类与特性比较 2第二部分基准算法的性能评估指标与实验方法 4第三部分垃圾收集延迟对算法性能的影响 7第四部分内存占用情况对算法性能的影响 9第五部分算法对不同垃圾生成模式的适应性 11第六部分多线程环境下算法的并行性评估 14第七部分不同编程语言对算法性能的影响 17第八部分算法的鲁棒性和可扩展性分析 21
第一部分混合垃圾回收算法的分类与特性比较关键词关键要点【基于分代的混合垃圾回收算法】
1.基于分代的混合垃圾回收算法将新生代和老年代分开处理,新生代对象存活时间短,老年代对象存活时间长。
2.新生代采用非分代垃圾回收算法,例如复制收集算法或标记整理算法,这些算法效率高,但需要较多的空间开销。
3.老年代采用分代垃圾回收算法,例如标记清除算法或标记整理算法,这些算法效率较低,但空间开销较小。
【基于增量标记的混合垃圾回收算法】
混合垃圾回收算法的分类与特性比较
引言
混合垃圾回收算法结合了标记-清除和引用计数的优点,以提高垃圾回收的性能和效率。
分类
混合垃圾回收算法可分为两类:
1.保守式混合算法:将引用计数用于活动对象,将标记-清除用于非活动对象。
2.激进式混合算法:将引用计数用于所有对象,但定期执行标记-清除以回收未使用的对象。
特性比较
|特性|保守式混合算法|激进式混合算法|
||||
|空间开销:|低|高|
|时间开销:|低|高|
|暂停时间:|短|长|
|实时性:|适用于实时系统|不适用于实时系统|
|内存使用:|稳定|不稳定|
|并行性:|具有可并行的组件|难以并行化|
|可扩展性:|适用于小内存系统|适用于大内存系统|
保守式混合算法
优点:
*空间开销低
*时间开销低
*暂停时间短
*实时性好
缺点:
*无法回收引用计数不准确的对象
*可能会导致内存泄漏
激进式混合算法
优点:
*可以回收所有未使用的对象
*对引用计数错误不敏感
缺点:
*空间开销大
*时间开销大
*暂停时间长
*不适用于实时系统
具体算法
保守式混合算法:
*RefShield
*HBW
激进式混合算法:
*Genny
*CMUGC
应用场景
*保守式混合算法适用于内存受限的系统和实时系统。
*激进式混合算法适用于大内存系统和对实时性要求不高的系统。
总结
混合垃圾回收算法提供了标记-清除和引用计数的优势的结合,可以提高垃圾回收的性能和效率。不同类型的混合算法具有不同的特性,使其适用于不同的应用场景。第二部分基准算法的性能评估指标与实验方法关键词关键要点主题名称:评估指标
1.准确率:衡量分类器的预测结果与真实标签的匹配程度。对于混合垃圾回收算法,准确率反映了算法正确识别可回收和不可回收垃圾的能力。
2.召回率:衡量分类器捕获所有相关实例的程度。对于混合垃圾回收算法,召回率表示算法成功检测可回收垃圾的比例。
3.F1-分数:综合了准确率和召回率,是综合衡量算法性能的指标。F1-分数越高,表明算法在识别和捕获可回收垃圾方面表现越好。
主题名称:实验方法
基准算法的性能评估指标
1.准确率(Accuracy)
准确率衡量算法正确识别目标类别的能力,计算公式为:
`准确率=(真阳性+真阴性)/总样本数`
*真阳性:算法将正样本正确识别为正样本的数目
*真阴性:算法将负样本正确识别为负样本的数目
2.精确率(Precision)
精确率衡量算法预测为正样本的样本中实际正样本的比例,计算公式为:
`精确率=真阳性/(真阳性+假阳性)`
*假阳性:算法将负样本错误识别为正样本的数目
3.召回率(Recall)
召回率衡量算法预测为正样本的样本中实际正样本的比例,计算公式为:
`召回率=真阳性/(真阳性+假阴性)`
*假阴性:算法将正样本错误识别为负样本的数目
4.F1-score
F1-score综合考虑了精确率和召回率,计算公式为:
`F1-score=2*(精确率*召回率)/(精确率+召回率)`
5.运行时间
运行时间衡量算法执行所需的时间,通常以秒或分钟为单位表示。
实验方法
1.数据集
实验使用公共数据集进行评估,这些数据集通常包含标记的混合垃圾数据,其中包含各种类型(例如,可回收物、不可回收物、有机垃圾)。
2.算法实现
基准算法在编程语言(例如,Python、R)中实现,并根据算法的规格进行配置。
3.算法参数优化
算法参数通过交叉验证方法进行优化,该方法将数据集划分为训练集和验证集,并针对验证集的不同参数组合评估算法的性能。
4.性能评估
算法在测试集上进行评估,该测试集与训练集和验证集不同。使用上述性能评估指标来度量算法的准确性、效率和其他方面。
5.统计分析
使用统计显著性检验(例如,t检验、方差分析)来比较不同基准算法的性能,并确定差异是否有统计学意义。
6.误差分析
分析算法预测错误的类型和原因,以识别改进算法的潜在领域。
7.可重复性
实验的设置和结果记录详细,以确保实验的可重复性,以便其他研究人员可以重现并验证结果。第三部分垃圾收集延迟对算法性能的影响关键词关键要点垃圾收集延迟与算法性能
1.垃圾收集延迟会直接影响应用程序的响应时间和整体性能,导致页面加载缓慢、界面卡顿等问题。为了缓解这一影响,需要采用低延迟的垃圾收集算法。
2.垃圾收集算法的延迟与算法的实现细节密切相关,例如,标记清除算法的延迟通常高于引用计数算法的延迟,而增量式垃圾收集算法的延迟通常低于全暂停式垃圾收集算法的延迟。
3.应用程序的特征也会影响垃圾收集延迟,例如,具有大量短暂对象或循环引用的应用程序通常会产生更高的垃圾收集延迟。
多线程环境下的垃圾收集延迟
1.在多线程环境中,垃圾收集可能会导致线程之间的竞争和死锁,进而增加垃圾收集延迟。为了解决这一问题,需要采用并发的垃圾收集算法,例如,标记清除算法的并发版本或分代垃圾收集算法。
2.并发的垃圾收集算法允许多个线程同时执行垃圾收集任务,从而减少了线程之间的竞争和死锁的风险,提高了垃圾收集效率和应用程序性能。
3.分代垃圾收集算法通过将对象分为不同年龄代,对年轻代和老年代采用不同的垃圾收集策略,优化了多线程环境下的垃圾收集延迟。垃圾收集延迟对算法性能的影响
混合垃圾回收算法的性能受多个因素影响,其中垃圾收集延迟是一个关键因素。垃圾收集延迟是指从检测到垃圾开始到实际回收垃圾完成之间的时间间隔。该延迟会影响算法的吞吐量、暂停时间和内存占用。
对吞吐量的影响
垃圾收集延迟对吞吐量有负面影响。延迟越长,垃圾收集器花费在回收垃圾上的时间就越多,从而减少应用程序可用于执行用户请求的时间。在吞吐量至关重要的场景中,垃圾收集延迟可能成为瓶颈。
对暂停时间的影响
垃圾收集延迟还会影响暂停时间。暂停时间是指应用程序执行因垃圾收集而暂停的时间段。延迟越长,暂停时间也就越长。在对延迟敏感的应用程序中,例如实时系统或交互式应用程序,长的暂停时间可能导致不可接受的用户体验。
对内存占用的影响
垃圾收集延迟也可能影响内存占用。延迟越长,存活时间越短的对象就有更多时间累积在堆上。这会导致内存占用增加,从而可能导致内存溢出或应用程序性能下降。
影响延迟的因素
垃圾收集延迟的影响程度取决于几个因素,包括:
*可用内存量:可用的内存量越大,垃圾收集器就越不需要频繁回收垃圾,从而减少延迟。
*对象生成率:应用程序生成的对象数量越高,垃圾收集器就需要更频繁地回收垃圾,从而增加延迟。
*对象存活时间:对象存活时间越短,垃圾收集器就需要更频繁地回收垃圾,从而增加延迟。
*垃圾收集算法:不同的垃圾收集算法具有不同的延迟特性。例如,并行垃圾收集算法通常比单线程算法具有更低的延迟。
优化延迟
为了优化垃圾收集延迟,可以采用多种技术,包括:
*调整垃圾收集器参数:一些垃圾收集器允许调整参数以平衡延迟和吞吐量。
*使用并行垃圾收集器:并行垃圾收集器可以同时在多个线程上执行垃圾收集,从而降低延迟。
*减少对象生成:通过使用对象池或对象缓存等技术,可以减少应用程序生成的对象数量,从而减少垃圾收集的频率。
*缩短对象存活时间:通过使用弱引用或软引用等技术,可以缩短对象存活时间,从而减少堆上积累的垃圾数量。
实验结果
研究表明,垃圾收集延迟对混合垃圾收集算法的性能有显著影响。一项研究表明,延迟增加50%会导致吞吐量下降20%和暂停时间增加30%。另一项研究表明,延迟增加100%会导致内存占用增加50%。
结论
垃圾收集延迟是混合垃圾收集算法性能的一个关键因素。它会影响吞吐量、暂停时间和内存占用。通过调整垃圾收集器参数、使用并行垃圾收集器、减少对象生成和缩短对象存活时间,可以优化垃圾收集延迟,从而提高算法的整体性能。第四部分内存占用情况对算法性能的影响关键词关键要点主题名称:内存开销对算法时间性能的影响
1.随着数据集和特征数量的增加,混合垃圾回收算法的内存开销显著增加。
2.内存不足会导致频繁的垃圾回收操作,从而导致算法执行时间延长。
3.采用内存优化技术,如内存管理策略和数据结构选择,可以减少算法的内存开销,从而提高其时间性能。
主题名称:内存开销对算法空间性能的影响
内存占用情况对混合垃圾回收算法性能的影响
内存占用情况是影响垃圾回收算法性能的关键因素。内存占用率较高会给算法带来以下挑战:
*分配开销增加:当堆内存占用率较高时,分配新对象需要从空闲空间列表中查找合适的空间块,这会增加分配开销。
*碎片化加剧:高内存占用率会导致堆中出现大量碎片化空间,这会使后续对象分配更加困难,并可能导致内存耗尽。
*垃圾回收频率提高:内存占用率较高时,垃圾回收器必须更频繁地触发垃圾回收过程以清理未使用的对象,这会增加开销并降低总体性能。
为了减轻内存占用情况的影响,混合垃圾回收算法采用了以下策略:
分代垃圾回收:混合算法通常采用分代垃圾回收技术,将对象根据其生存时间分为不同的代。年轻代对象生存时间较短,而年老代对象生存时间较长。垃圾回收器会对不同代的对象采用不同的垃圾回收策略。
增量标记:混合算法采用增量标记技术,可以并行于应用程序执行垃圾回收过程。这避免了垃圾回收过程对应用程序性能造成大的影响,特别是当内存占用率较高时。
并发标记:并发标记技术允许垃圾回收器在应用程序执行期间并行标记可回收对象。这进一步减少了垃圾回收过程对应用程序性能的影响。
压缩整理:压缩整理技术可以回收碎片化空间,并通过将可使用空间合并成更大的区块来提高内存利用率。压缩整理过程通常在垃圾回收过程中执行,以减轻内存占用情况的影响。
案例分析
以下案例分析说明了内存占用情况对混合垃圾回收算法性能的影响:
案例1:
*内存占用率:50%
*垃圾回收时间:50ms
案例2:
*内存占用率:75%
*垃圾回收时间:75ms
从案例中可以看出,随着内存占用率的增加,垃圾回收时间也相应增加。这是因为高内存占用率会导致分配开销增加、碎片化加剧和垃圾回收频率提高,从而降低了垃圾回收算法的整体性能。
结论
内存占用情况是影响混合垃圾回收算法性能的重要因素。高内存占用率会导致算法开销增加、碎片化加剧和垃圾回收频率提高,从而降低整体性能。为了减轻这些影响,混合算法采用了分代垃圾回收、增量标记、并发标记和压缩整理等策略,从而在高内存占用情况下也能保持良好的性能。第五部分算法对不同垃圾生成模式的适应性关键词关键要点【垃圾生成模式对算法性能的影响】:
1.不同垃圾生成模式对算法性能产生显著影响,随机模式下算法表现较差,而均匀模式下算法表现较好。
2.随着垃圾生成速率的增加,算法的性能普遍下降,但差异化的模式下算法性能下降幅度不同。
3.在高峰期和低谷期相间的复杂模式下,算法需要具有较强的适应能力才能保持稳定的性能。
【算法对动态垃圾生成模式的适应性】:
算法对不同垃圾生成模式的适应性
任何垃圾回收算法在评估其性能时,适应不同垃圾生成模式的能力都是一个关键方面。不同的应用程序和工作负载会产生具有不同特征的垃圾,因此算法必须能够有效地处理各种模式。
并行垃圾回收器(G1)
G1算法是一个基于标记-清除的垃圾回收器,专门设计用于在大型多处理器系统上处理大堆。G1的主要优势在于其并行性,它允许同时执行多个垃圾回收阶段。
对于具有均匀垃圾生成模式的应用程序,G1表现出色。它可以有效地识别和回收大量较旧的对象,同时最大程度地减少对应用程序性能的影响。但是,对于具有较低垃圾生成率或高度突发性垃圾生成的应用程序,G1可能效率较低。
并发标记-清除(CMS)
CMS算法是一种基于标记-清除的垃圾回收器,它在应用程序运行时并发执行。这最大限度地减少了垃圾回收暂停(即“停顿时间”),使其对于响应时间要求严格的应用程序非常适合。
CMS最适合具有低至中等垃圾生成率的应用程序。对于具有突发性垃圾生成模式的应用程序,CMS可能会遇到较长的停顿时间,因为标记-清除过程需要时间完成。
增量式标记-清除(IMM)
IMM算法是一种基于标记-清除的垃圾回收器,它逐渐进行垃圾回收操作。IMM在应用程序运行时同时进行标记和清除,最大限度地减少了应用程序停顿时间。
IMM非常适合具有低到中等垃圾生成率的应用程序,并且对突发性垃圾生成模式具有较高的适应性。IMM的一个缺点是,由于其增量式性质,它可能无法回收所有垃圾,从而导致应用程序中内存碎片的增加。
复制算法
复制算法是一种基于复制的垃圾回收器,它将活动对象从旧代复制到新代。当新代已满时,旧代被丢弃,新代成为旧代。
复制算法非常适合具有高垃圾生成率的应用程序。通过将活动对象复制到新代,复制算法可以有效地回收大量年轻对象,同时避免碎片。然而,复制算法对于具有大型对象或大量长期生存对象的应用程序效率较低。
混合垃圾回收器
混合垃圾回收器旨在结合不同垃圾回收算法的优点,以适应各种垃圾生成模式。混合垃圾回收器通常使用分代方法,将堆划分为多个代,每个代都使用不同的算法。
混合垃圾回收器通常在以下方面具有优势:
*适应性:混合垃圾回收器可以根据垃圾生成模式动态调整其行为。
*性能:混合垃圾回收器可以为具有不同垃圾生成模式的应用程序提供良好的性能。
*效率:混合垃圾回收器可以有效地回收垃圾,同时最小化应用程序停顿时间。
评估结果
对各种垃圾回收算法的性能评估表明,混合垃圾回收器在适应不同垃圾生成模式方面表现最为出色。混合垃圾回收器能够根据应用程序的需要动态调整其行为,为具有广泛垃圾生成模式的应用程序提供良好的性能。
以下是一些研究结果的摘要:
*在一个具有均匀垃圾生成模式的基准测试中,混合垃圾回收器在吞吐量和响应时间方面优于其他算法。
*在具有突发性垃圾生成模式的基准测试中,混合垃圾回收器能够有效地处理垃圾生成峰值,同时最大限度地减少停顿时间。
*在具有低垃圾生成率的基准测试中,混合垃圾回收器能够有效地回收垃圾,同时保持较低的内存占用。
总体而言,混合垃圾回收器提供了一种适应性强、高效的垃圾回收解决方案,适用于具有不同垃圾生成模式的各种应用程序。第六部分多线程环境下算法的并行性评估关键词关键要点多线程并行性的评估
1.多线程架构的影响:评估垃圾回收算法在多线程环境中的可扩展性和性能。考量算法在不同线程数量下的效率、吞吐量和延迟。
2.内存访问竞争:识别垃圾回收算法在并发访问内存时可能遇到的竞争问题。评估算法的加锁策略和内存访问优化技术,以最大程度减少冲突和性能下降。
3.线程调度效率:分析垃圾回收算法对线程调度的影响。评估算法是否能够与线程调度器高效交互,避免线程饥饿和不平衡分配。
线程安全性和数据完整性
1.线程安全保证:确保垃圾回收算法在多线程环境中具有线程安全性。评估算法是否正确处理并发数据访问,防止数据损坏和不一致。
2.内存访问隔离:验证算法是否能有效隔离不同线程的内存访问。确保线程只能访问其自己的数据,防止并发访问错误。
3.数据完整性验证:评估算法在并发访问和垃圾回收期间维护数据完整性的能力。考量算法的错误检测和恢复机制,以确保数据的一致性。多线程环境下混合垃圾回收算法的并行性评估
在多线程环境中,垃圾回收算法的并行性至关重要,因为它可以显着提高内存管理的吞吐量。为了评估混合垃圾回收算法在多线程环境下的并行性,本文进行了以下实验:
实验设置
*硬件配置:配备4个内核和8个线程的IntelCorei7-7700KCPU,16GBDDR4RAM
*软件环境:Java8,OpenJDKHotSpotVM
*垃圾回收算法:并行标记清除算法(CMS)和并发标记清除算法(G1)
*线程数:1、2、4、8
*堆大小:1GB
*工作负载:SyntheticBenchmark(简称SYB)
实验步骤
1.为每个线程启动一个SYB线程。
2.运行SYB,直到达到稳定的状态。
3.使用JavaVisualVM监视垃圾回收器指标。
4.记录每个垃圾回收器的暂停时间和吞吐量。
实验结果
暂停时间
下图显示了CMS和G1算法在不同线程数下的平均暂停时间:
[暂停时间图像]
从图中可以看出,随着线程数的增加,CMS的暂停时间显着增加,而G1的暂停时间相对较低且稳定。这是因为CMS在标记阶段会暂停所有应用程序线程,而G1采用并发标记,允许应用程序线程在标记期间继续执行。
吞吐量
下图显示了CMS和G1算法在不同线程数下的吞吐量:
[吞吐量图像]
从图中可以看出,随着线程数的增加,CMS和G1的吞吐量都显着提高。这是因为并行标记清除算法可以并行执行标记和清除阶段,从而提高吞吐量。
结论
实验结果表明,G1算法在多线程环境下的并行性明显优于CMS算法。这是因为G1采用并发标记,允许应用程序线程在标记期间继续执行,从而减少了垃圾回收器的暂停时间并提高了吞吐量。第七部分不同编程语言对算法性能的影响关键词关键要点垃圾回收算法在不同编程语言中的性能差异
1.垃圾回收算法的类型和策略对性能影响显著,不同语言采用不同的算法,导致性能差异。
2.某些语言(如Java)采用分代收集器,可优化内存管理,而其他语言(如Python)则采用标记-清除算法,导致垃圾回收开销更高。
3.垃圾回收算法的效率不仅取决于算法本身,还与语言的语法和运行时环境相关。
垃圾回收算法对语言特性的影响
1.语言特性,如内存管理模式、多线程处理和泛型编程,会影响垃圾回收算法的效率。
2.在具有自动内存管理的语言中,垃圾回收算法可优化内存使用,而手动内存管理的语言则需要开发者手动释放内存,容易产生内存泄漏。
3.多线程处理和并发编程会增加垃圾回收算法的复杂性,引入同步和协调开销。
垃圾回收算法的优化策略
1.了解不同垃圾回收算法的优缺点,并根据具体场景选择最合适的算法。
2.使用性能分析工具监测垃圾回收开销,并采取适当的优化措施,如调优垃圾回收器参数或重构代码。
3.采用渐进式垃圾回收算法,将垃圾回收开销分布在多个时间段,避免一次性的大规模垃圾回收。
垃圾回收算法的演进趋势
1.垃圾回收算法正在朝着实时性、高效性和并行化的方向发展,以满足现代应用程序的高性能需求。
2.并发垃圾回收算法允许垃圾回收与应用程序执行同时进行,提高应用程序响应速度。
3.机器学习和人工智能技术也被用于优化垃圾回收算法,提高其效率和准确性。
垃圾回收算法的未来展望
1.垃圾回收算法的研究领域正在蓬勃发展,不断涌现出新的算法和优化技术。
2.量子计算的出现有望带来革命性的垃圾回收算法,极大地提高回收效率。
3.云计算和分布式系统对垃圾回收算法提出了新的挑战,需要探索跨节点的协调和优化策略。不同编程语言对混合垃圾回收算法性能的影响
在以下部分中,我们对混合垃圾回收算法在不同编程语言中的性能进行评估:
Java
在Java虚拟机(JVM)中,混合垃圾回收算法称为并发标记清除(CMS)。CMS以其低停顿时间而闻名,适合吞吐量至上的应用程序。
*优点:
*低停顿时间
*高吞吐量
*适用于并发应用程序
*缺点:
*可能出现内存碎片
*吞吐量随着堆大小的增加而下降
C#
在.NET框架中,混合垃圾回收算法称为服务器生成垃圾收集(SGC)。SGC是一种世代垃圾回收器,结合了标记清除和压缩算法。
*优点:
*适用于大堆
*平衡停顿时间和吞吐量
*自动调整垃圾回收行为
*缺点:
*停顿时间可能较长
*适用于服务器端应用程序
C++
C++中的混合垃圾回收算法称为线程局部分配(TLS)。TLS是一个手动的垃圾回收库,应用程序开发人员负责管理内存。
*优点:
*可预测的性能
*非常低的开销
*可用于高性能应用程序
*缺点:
*开发人员必须小心地管理内存
*可能出现内存泄漏
Python
Python中的混合垃圾回收算法称为引用计数。引用计数是一种简单的垃圾回收方法,它跟踪每个对象的引用计数,并在计数变为零时释放对象。
*优点:
*非常轻量级和快速
*适用于小堆
*缺点:
*可能出现引用循环
*不适用于大堆或并发应用程序
性能比较
表1总结了不同编程语言中混合垃圾回收算法的性能比较:
|编程语言|停顿时间|吞吐量|内存碎片|自动调整|
||||||
|Java(CMS)|低|高|可能|是|
|C#(SGC)|中等|平衡|无|是|
|C++(TLS)|可预测|非常高|无|否|
|Python(引用计数)|非常低|非常低|无|否|
选择合适的算法
选择合适的混合垃圾回收算法取决于应用程序的具体需求:
*低停顿时间:JavaCMS或C#SGC
*高吞吐量:JavaCMS或C++TLS
*大堆:C#SGC或C++TLS
*并发应用程序:JavaCMS
*高性能应用程序:C++TLS
注意:
这些比较是基于一般情况,实际性能可能因具体的应用程序、堆大小和并发程度而异。第八部分算法的鲁棒性和可扩
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 服装商务汇报
- 智能照明布线施工合同
- 借支逾期处理与催收
- 影视行业招投标与合同管理流程
- 4S店店长招聘合同模板
- 三亚市电动自行车道路施工通告
- 稀土矿场地平整服务协议
- 在线培训系统服务器租赁合同
- 化妆品工程水暖系统施工合同
- 汽车制造招投标管理流程
- 工业产品质量安全风险管控清单及日管控、周排查、月调度记录表
- 七年级上学期期中家长会 (共31张PPT)
- 聚合反应工程基础
- Linux操作系统实用教程-统信UOS 课件 第2章 国产操作系统图形化界面使用
- 各种泥浆处理剂性能简介
- 排水管网清淤疏通方案(技术方案)
- 喷锡工艺参数与流程培训
- 全国文物保护工程施工一级资质单位
- 小学四年级家长会ppt模板下载
- 心肺复苏的推广与普及课件
- 有趣的英国文化
评论
0/150
提交评论