Julia發佈全新調試器,性能也大幅改進,速度大約是原來50倍!

Julia全新的調試器是一組工具的集合,讓開發者可以在IDE Juno中使用,也可以使用REPL文字用戶接口,在代碼下斷點逐步調試。

Julia發佈全新調試器,性能也大幅改進,速度大約是原來50倍!

數據科學家愛用的程序語言Julia,發佈了全新功能完整的調試器,可以讓開發者輕鬆地調試和Introspect代碼,可以深入函數手動訪問代碼,並檢查狀態,也能在不需要重新啟動的情況下,以互動的方式更新和替換現有代碼,或是設置斷點和陷阱錯誤,幫助開發者發現故障發生的問題。

官方提到,調試器本身就是一組各種功能集合的工具,而其核心功能則是由直譯器支持,該直譯器不只能夠執行Julia代碼,也能以各種前端控制直譯器的執行。每個前端都有其可用的套件,Juno將調試器整合進IDE中,Rebugger則提供REPL文字用戶接口,而調試器提供傳統的命令接口。這些調試功能都與套件Revise無縫整合,開發者可以在同一個對話中,連續分析和修改代碼。

Juno為直譯器提供了豐富的用戶接口,讓開發者可以設定斷點,並直接在源代碼中逐步執行。調試REPL能夠在本地上下文執行任意代碼,開發者可以在Workspace中檢查局部變量,使用宏Juno.@run開始直譯開發者的代碼,或是Juno.@enter可以從第一行開始逐步進行。

當開發者使用Atom之外的編輯器,或是透過控制檯界面在遠程對話中工作,可以使用REPL進行調試,REPL有兩種界面,其一是調試器提供類似gdb的逐步、下一步和繼續接口,另一種Rebugger則是提供IDE形式的控制檯接口。調試器具有一些其他接口都沒有的功能,像是調控逐步執行的精細度等。

而Julia這些新的調試功能都來自新版的JuliaInterpreter,官方提到,JuliaInterpreter是整個堆棧的關鍵,其包含評估和檢查Julia代碼的邏輯,也能用於逐步進行代碼評估以及斷點的操作。JuliaInterpreter是從ASTInterpreter2套件改進而來,順應Julia 1.0的需要,加入了許多改變,在性能上也獲得了大幅度的改進,大約是原來50倍速度。

JuliaInterpreter改進新增對斷點的支持,官方提到,嚴格說來雖然不是直譯器功能,但卻是建構調試器必要的功能,並且也可以被看做直譯器控制流的一種形式,這些斷點可以用斷點函數和宏設置,或在Juno、Rebugger與調試器中操作,或在代碼中以宏設置。

官方提到,雖然直譯器的速度加快了,但是比起編譯的程序代碼執行速度,仍然差了幾個量級,他們會在幾個月內縮小這個差距,但是最終直譯代碼仍然比編譯過的程序代碼慢。


分享到:


相關文章: