观点:Lisp是Java的替代品

E. Gat
{"title":"观点:Lisp是Java的替代品","authors":"E. Gat","doi":"10.1145/355137.355142","DOIUrl":null,"url":null,"abstract":"I n a recent study Prechelt (1999) compared the relative performance of Java and C++ in execution time and memory usage. Unlike many benchmark studies, Prechelt compared multiple implementations of the same task by multiple programmers in order to control for the effects of differences in programmer skill. Prechelt concluded that \" as of JDK 1.2, Java programs are typically much slower than programs written in C or C++. They also consume much more memory. \" We repeated Prechelt's study using Lisp as the implementation language. Our results show that Lisp's performance is comparable to or better than C++ in execution speed; it also has significantly lower variability, which translates into reduced project risk. Furthermore, development time is significantly lower and less variable than either C++ or Java. Memory consumption is comparable to Java. Lisp thus presents a viable alternative to Java for dynamic applications where performance is important. Experiment Our data set consists of 16 programs written by 14 programmers. (Two programmers submitted more than one program, as was the case in the original study.) Twelve of the programs were written in Common Lisp (Steele 1990), and the other four were in Scheme (ACM 1991). All of the subjects were volunteers recruited from an Internet newsgroup. To the extent possible we duplicated the circumstances of the original study. We used the same problem statement (slightly edited but essentially unchanged), the same program input files, and the same kind of machine for the benchmark tests: a SPARC Ultra 1. The only difference was that the original machine had 192 MB of RAM and ours had only 64 MB; however , none of the programs used all the available RAM, so the results should not have changed. Common Lisp benchmarks were run using Allegro CL 4.3. Scheme benchmarks were run using MzScheme (Flatt 2000). All the programs were compiled to native code. Figure 1: Experimental results. The vertical lines from left to right indicate, respectively, the 10th percentile, median, and 90th percentile. The hollow box encloses the 25th to 50th percentile. The thick grey line is the width of two standard deviations centered on the mean.","PeriodicalId":8272,"journal":{"name":"Appl. Intell.","volume":"30 1","pages":"21-24"},"PeriodicalIF":0.0000,"publicationDate":"2000-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"16","resultStr":"{\"title\":\"Point of view: Lisp as an alternative to Java\",\"authors\":\"E. Gat\",\"doi\":\"10.1145/355137.355142\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"I n a recent study Prechelt (1999) compared the relative performance of Java and C++ in execution time and memory usage. Unlike many benchmark studies, Prechelt compared multiple implementations of the same task by multiple programmers in order to control for the effects of differences in programmer skill. Prechelt concluded that \\\" as of JDK 1.2, Java programs are typically much slower than programs written in C or C++. They also consume much more memory. \\\" We repeated Prechelt's study using Lisp as the implementation language. Our results show that Lisp's performance is comparable to or better than C++ in execution speed; it also has significantly lower variability, which translates into reduced project risk. Furthermore, development time is significantly lower and less variable than either C++ or Java. Memory consumption is comparable to Java. Lisp thus presents a viable alternative to Java for dynamic applications where performance is important. Experiment Our data set consists of 16 programs written by 14 programmers. (Two programmers submitted more than one program, as was the case in the original study.) Twelve of the programs were written in Common Lisp (Steele 1990), and the other four were in Scheme (ACM 1991). All of the subjects were volunteers recruited from an Internet newsgroup. To the extent possible we duplicated the circumstances of the original study. We used the same problem statement (slightly edited but essentially unchanged), the same program input files, and the same kind of machine for the benchmark tests: a SPARC Ultra 1. The only difference was that the original machine had 192 MB of RAM and ours had only 64 MB; however , none of the programs used all the available RAM, so the results should not have changed. Common Lisp benchmarks were run using Allegro CL 4.3. Scheme benchmarks were run using MzScheme (Flatt 2000). All the programs were compiled to native code. Figure 1: Experimental results. The vertical lines from left to right indicate, respectively, the 10th percentile, median, and 90th percentile. The hollow box encloses the 25th to 50th percentile. The thick grey line is the width of two standard deviations centered on the mean.\",\"PeriodicalId\":8272,\"journal\":{\"name\":\"Appl. Intell.\",\"volume\":\"30 1\",\"pages\":\"21-24\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2000-12-01\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"16\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Appl. Intell.\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1145/355137.355142\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Appl. Intell.","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/355137.355142","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 16

摘要

在Prechelt(1999)最近的一项研究中,比较了Java和c++在执行时间和内存使用方面的相对性能。与许多基准研究不同,Prechelt比较了多个程序员对同一任务的多个实现,以控制程序员技能差异的影响。Prechelt总结道:“从JDK 1.2开始,Java程序通常比用C或c++编写的程序慢得多。它们还会消耗更多的内存。”我们使用Lisp作为实现语言重复了Prechelt的研究。我们的结果表明,Lisp的性能在执行速度上与c++相当或更好;它还具有显著降低的可变性,这转化为降低的项目风险。此外,与c++或Java相比,开发时间明显更短,变化也更少。内存消耗与Java相当。因此,对于性能很重要的动态应用程序,Lisp提供了Java的可行替代方案。我们的数据集由14个程序员编写的16个程序组成。(两名程序员提交了不止一个程序,就像最初的研究一样。)其中12个程序是用Common Lisp (Steele 1990)编写的,另外4个是用Scheme (ACM 1991)编写的。所有的研究对象都是从一个互联网新闻组中招募的志愿者。我们尽可能地重现了最初研究的情况。我们使用相同的问题语句(稍微编辑了一下,但基本上没有改变)、相同的程序输入文件和相同类型的机器进行基准测试:SPARC Ultra 1。唯一的区别是原来的机器有192 MB的RAM,而我们的只有64 MB;但是,没有一个程序使用了所有可用的RAM,所以结果应该不会改变。使用Allegro CL 4.3运行常见的Lisp基准测试。使用MzScheme (Flatt 2000)运行Scheme基准测试。所有的程序都被编译成本地代码。图1:实验结果。从左到右的竖线分别表示第10百分位、中位数和第90百分位。中空的盒子包含了第25到50个百分位数。粗灰线是以平均值为中心的两个标准差的宽度。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
Point of view: Lisp as an alternative to Java
I n a recent study Prechelt (1999) compared the relative performance of Java and C++ in execution time and memory usage. Unlike many benchmark studies, Prechelt compared multiple implementations of the same task by multiple programmers in order to control for the effects of differences in programmer skill. Prechelt concluded that " as of JDK 1.2, Java programs are typically much slower than programs written in C or C++. They also consume much more memory. " We repeated Prechelt's study using Lisp as the implementation language. Our results show that Lisp's performance is comparable to or better than C++ in execution speed; it also has significantly lower variability, which translates into reduced project risk. Furthermore, development time is significantly lower and less variable than either C++ or Java. Memory consumption is comparable to Java. Lisp thus presents a viable alternative to Java for dynamic applications where performance is important. Experiment Our data set consists of 16 programs written by 14 programmers. (Two programmers submitted more than one program, as was the case in the original study.) Twelve of the programs were written in Common Lisp (Steele 1990), and the other four were in Scheme (ACM 1991). All of the subjects were volunteers recruited from an Internet newsgroup. To the extent possible we duplicated the circumstances of the original study. We used the same problem statement (slightly edited but essentially unchanged), the same program input files, and the same kind of machine for the benchmark tests: a SPARC Ultra 1. The only difference was that the original machine had 192 MB of RAM and ours had only 64 MB; however , none of the programs used all the available RAM, so the results should not have changed. Common Lisp benchmarks were run using Allegro CL 4.3. Scheme benchmarks were run using MzScheme (Flatt 2000). All the programs were compiled to native code. Figure 1: Experimental results. The vertical lines from left to right indicate, respectively, the 10th percentile, median, and 90th percentile. The hollow box encloses the 25th to 50th percentile. The thick grey line is the width of two standard deviations centered on the mean.
求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Object interaction-based surveillance video synopsis Total generalized variational-liked network for image denoising Multi-level clustering based on cluster order constructed with dynamic local density Natural-language processing for computer-supported instruction Is AI abstract and impractical? isn't the answer obvious?
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1