成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Jacl與Jython性能測評總結(jié)

開發(fā) 后端
本文通過一系列測試比較了Jacl和Jython性能,得出結(jié)論,Jython性能比較強(qiáng)大,是速度最快的一種。

一、Jacl 與Jython歷史與由來

在一些Java應(yīng)用的需求中,集成某種腳本語言的支持能夠帶來很大的方便。例如,用戶可能想要編寫腳本程序驅(qū)動應(yīng)用、擴(kuò)展應(yīng)用,或為了簡化操作而編寫循環(huán)和其他流程控制邏輯。在這些情況下,一種理想的解決方案是在Java應(yīng)用中提供對腳本語言解釋器的支持,讓腳本語言解釋器讀取用戶編寫的腳本并在應(yīng)用提供的類上運(yùn)行這些腳本。為了實現(xiàn)這個目標(biāo),你可以在Java應(yīng)用所運(yùn)行的JVM中,運(yùn)行一個基于Java的腳本語言解釋器。Jacl與Jython便是Java腳本語言。Jacl為Tcl的Java實現(xiàn),Jython為Python的Java實現(xiàn)。 (其他的腳本語言:Rhino:JavaScript的Java實現(xiàn)。 BeanShell:一個用Java編寫的Java源代碼解釋器。)

二、Jacl與Jython性能比較

1)Jacl與Jython性能之可用性比較:

Jacl:如果你想要在Tk腳本代碼中創(chuàng)建用戶界面元素,請訪問Swank project,它把Java的Swing部件封裝到了Tk里面。發(fā)行版不包含Jacl腳本的調(diào)試器。

Jython:支持用Python語法編寫的腳本。Python利用縮進(jìn)層次表示代碼塊的結(jié)構(gòu),而不是象其他許多語言一樣用花括號或開始-結(jié)束符號表示控制流程。

2)Jacl與Jython性能之運(yùn)行測試:

為一致起見,測試程序的每一種腳本語言的版本都盡量地相似。測試在一臺Toshiba Tecra 8100筆記本上進(jìn)行,CPU是700-MHz的Pentium III處理器,RAM是256 MB。調(diào)用JVM時,堆棧大小使用默認(rèn)值。

表格一:從1到1000000計數(shù)的for循環(huán):

解釋器類型 時間
Jacl  140 秒
Jython 1.2 秒

表格二:比較整數(shù)是否相等,1000000次:

解釋器類型 時間
Jacl  300 秒
Jython 4 秒

表格三:分配并初始化100000個元素的數(shù)組:

解釋器類型 時間
Jacl  25 秒
Jython 1 秒

表格四:分配并初始化500 X 500 個元素的數(shù)組:

解釋器類型 時間
Jacl  45 秒
Jython 1秒

表格五:在JVM內(nèi)初始化解釋器所需要的內(nèi)存:

解釋器類型 時間
Jacl  大約1M
Jython 大約4M

本項評測證明Jython性能最好,Jacl性能可能是令人難以接受的。如果腳本程序重復(fù)執(zhí)行代碼的機(jī)會很少,那么這些解釋器在速度上的相對差異就不那么重要了。值得指出的是,Jython看來沒有為聲明二維數(shù)組提供內(nèi)建的直接支持,但這個問題可以通過一個“數(shù)組的數(shù)組”結(jié)構(gòu)解決。

3)Jacl與Jython性能之集成的難易程度(測試)

本項評測包含兩個任務(wù)。第一個任務(wù)是比較對各種腳本語言解釋器進(jìn)行實例化時需要多少代碼;第二個任務(wù)是編寫一個完成如下操作的腳本:實例化一個Java JFrame,放入一個JTree,調(diào)整大小并顯示出JFrame。盡管這些任務(wù)都很簡單,但由此我們可以看出開始使用一個解釋器要做多少工作,還可以看出為解釋器編寫的腳本代碼在調(diào)用Java類時到底是什么樣子。

Jacl性能測試

要把Jacl集成到Java應(yīng)用,首先要把Jacl的Jar文件加入到Java的CLASSPATH,然后在執(zhí)行腳本之前,創(chuàng)建Jacl解釋器的實例。下面是創(chuàng)建Jacl解釋器實例的代碼:

Jacl代碼清單:

  1. import tcl.lang.*;     
  2. public class SimpleEmbedded {     
  3.    public static void main(String args[]) {     
  4.       try {     
  5.             Interp interp = new Interp();     
  6.    } catch (Exception e) {     
  7. }     
  8. }  
下面的Jacl腳本代碼顯示了如何創(chuàng)建一個JTree,把它放入JFrame,調(diào)整大小并顯示JFrame:

Jacl代碼清單 

  1. package require java     
  2. set env(TCL_CLASSPATH)      
  3. set mid [java::new javax.swing.JTree]     
  4. set f [java::new javax.swing.JFrame]     
  5. $f setSize 200 200    
  6. set layout [java::new java.awt.BorderLayout]     
  7. $f setLayout $layout     
  8. $f add $mid      
  9. $f show   

Jython性能測試

要把Jython集成到Java應(yīng)用,首先要把Jython的Jar文件加入到Java的CLASSPATH,然后在執(zhí)行腳本之前,創(chuàng)建一個Jython解釋器的實例。完成這個任務(wù)的Jython代碼很簡單:

Jython代碼清單: 

  1. import org.python.util.PythonInterpreter;     
  2. import org.python.core.*;     
  3. public class SimpleEmbedded {     
  4.     public static void main(String []args) throws PyException {     
  5.         PythonInterpreter interp = new PythonInterpreter();     
  6.   }     
  7. }   
下面的Jython腳本代碼顯示了如何創(chuàng)建JTree,把它放入JFrame,然后顯示出JFrame。下面的代碼不包含調(diào)整大小的操作:

Jython代碼清單 

  1. from pawt import swing     
  2. import java, sys     
  3. frame = swing.JFrame('Jython example', visible=1)     
  4. tree = swing.JTree()     
  5. frame.contentPane.add(tree)     
  6. frame.pack()   

從上面的說明可以看出,在Java應(yīng)用中集成任何一種解釋器都是很容易的。同時,只要你掌握了腳本語言的語法,就能夠高效地編寫出腳本程序。

Jacl與jython性能測評總結(jié):

與其他解釋器相比,Jacl的發(fā)展速度看起來特別慢,但如果你必須使用Tcl腳本,使用Jacl解釋器仍舊是值得的。Jython性能比較強(qiáng)大,是速度最快的一種。唯一真正令人擔(dān)心的是Jyphon的流程控制語法,不過,你可能會在乎這些語法上的差異,也可能不會在乎。就象Jacl一樣,由于需要學(xué)習(xí)的新知識比較多,用Jython編寫腳本可能需要比JavaScript和BeanShell更長的學(xué)習(xí)時間。如果你想要用Python編寫比較復(fù)雜的腳本,就應(yīng)該買一本書。Python是一種廣受歡迎的編程語言,因此可供選擇的書籍也相當(dāng)多。

【編輯推薦】

  1. Jython 2.5版本發(fā)布?xì)v程
  2. Jython 2.2的新增特性及發(fā)布背景介紹
  3. Python和Jython的區(qū)別簡述
  4. Jython的安裝步驟(Jython2.1)
  5. JPython訪談錄:從JPython到Jython
責(zé)任編輯:佚名 來源: Jython中文網(wǎng)
相關(guān)推薦

2009-07-14 17:58:55

Jython性能

2009-10-09 15:18:05

Jython

2009-07-14 18:45:26

Jython開發(fā)特性

2009-07-10 17:33:39

jython語言什么是JythonJython

2020-04-09 15:35:43

前端開發(fā)框架

2009-07-16 13:09:46

Jython安裝

2009-07-14 15:20:25

Jython腳本Jython解釋器

2010-09-14 13:58:40

2009-07-15 18:03:40

Jython功能

2009-07-10 18:10:18

Jython編寫SerJython

2009-07-10 17:40:58

Jython訪問MyS

2009-07-15 17:38:58

Jython全局函數(shù)

2009-07-14 17:50:00

Jython特殊屬性

2009-12-14 15:04:32

Ruby性能特點

2021-08-27 14:26:06

開發(fā)技能React

2024-09-30 11:45:10

2012-05-18 10:14:47

JythonJavaJVM

2009-09-28 15:28:07

Jython 2.5.

2009-07-10 17:54:15

Java中調(diào)用JythJython

2009-07-15 17:49:09

Jython開發(fā)
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 久久91 | 亚洲精品一 | 干一干操一操 | 国产一区二区三区色淫影院 | 999热在线视频| 久久精品亚洲国产奇米99 | 精品视频一区二区三区在线观看 | 久久久久久国产 | 久久精品亚洲国产奇米99 | 欧美a在线观看 | 精品成人av | 欧美日韩成人影院 | 亚洲欧美中文日韩在线v日本 | 伊人网在线综合 | 亚洲精品99999| 一级黄色录像毛片 | 亚洲国产一区二区视频 | 亚洲精品在线看 | 精国产品一区二区三区 | 伊人网伊人网 | 欧美午夜一区 | 日韩精品视频在线观看一区二区三区 | 一区二区三区在线 | 在线免费观看成年人视频 | a视频在线观看 | 成人福利 | 国产露脸对白88av | 91精品一区| 一区二区三区亚洲视频 | 亚洲www| 国产丝袜一区二区三区免费视频 | 99久久精品国产一区二区三区 | 91精品欧美久久久久久久 | 成人做爰9片免费看网站 | 色视频成人在线观看免 | 欧美日韩精品一区二区三区视频 | 中文字幕加勒比 | 亚洲视频免费在线 | 自拍偷拍第一页 | 成人国产精品久久久 | 亚洲一二三区不卡 |