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与调试器中操作,或在代码中以宏设置。

官方提到,虽然直译器的速度加快了,但是比起编译的程序代码执行速度,仍然差了几个量级,他们会在几个月内缩小这个差距,但是最终直译代码仍然比编译过的程序代码慢。

相关推荐