`
hax
  • 浏览: 964684 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个史上最快的Web语法高亮引擎即将诞生

    博客分类:
  • AJAX
阅读更多
对比对象是目前最有名,也是JavaEye所使用的highlight插件:SyntaxHighlighter

SyntaxHighlighter2本身据作者说,已经做了大量优化,比SyntaxHighlighter1.5(JE使用的是1.5)更快。不过我实际测试下来,其实都一样慢,慢到对于一个1600行代码(base2的源代码),在IE下会跳出script slowly的对话框,在FF下要耗费2秒生成html,又花费0.5秒才能显示出来。而对于4300行代码(jQuery的源码),在FF下要耗费9秒生成html(或者你的机器比我的T60笔记本再慢一点,就会显示Unresponsive script对话框了——FF的阈值是10秒)。

而即将诞生的web语法高亮引擎有多快呢。

在IE下,1600行代码总共只需要200毫秒不到,4300行代码也就半秒,其中生成html的时间只需要300多毫秒。而在FF下,生成html的时间只有130毫秒。

我的终极测试是dojo 0.4.3的源代码,9800行。IE下,2秒内显示完毕,其中生成html的时间是750毫秒。FF下,生成html的时间是330毫秒。


差距是如此明显,因此我就标题党一回了。

好了,诸位,下面就请耐心等待吧。史上最快的Web语法高亮引擎即将诞生,预览版的发布日期初定为5月8日。
7
4
分享到:
评论
26 楼 Hooopo 2011-07-03  
期待 
25 楼 hax 2011-07-03  
还有人翻出老文章啊,汗颜啊。其实应该说明一下,这个东西在发布之前,始终在我当时的工作笔记本上。因为换工作,我的工作笔记本还给了前家公司,而个人内容打包后放回了家庭电脑,但不幸的是,我的家庭电脑raid0出现故障。之后我换了新电脑,并因为工作较忙(实际主要是个人较懒)的原因,一直没有去尝试修复我的老电脑上的硬盘。所以这份代码一直静静的躺在那一对硬盘上。可能某天我心血来潮会去试试看,也许还有机会重见天日。
24 楼 s79 2011-06-29  
我晕…………
23 楼 ryan.liu 2010-03-16  
这就没下文了?都一年了。真是标题党!
22 楼 xinyu198736 2010-03-05  
再说一点,highlighter里进行了很多判断处理啊,多语言处理啊,浪费了很多性能,人家google的工程师可不是吃素的,呵呵
21 楼 xinyu198736 2010-03-05  
还有,你这个支持json索引高亮么,还有多语言支持.汗,真敢拿出来,我那个工具拿出来之后立即被我在博客上展示了一番立即被我收回,因为大家都不信
20 楼 xinyu198736 2010-03-05  
lz,我做了一个可以轻松处理2万行代码,为什么普通的高亮这么慢呢,为什么大家都要基于正则呢,我是一次遍历高亮法做的
19 楼 georgewing 2010-01-15  
我也是D2慕名而来,Hax大牛还没有分布一个Demo版的吗?
18 楼 lfxc 2009-12-29  
问一下楼主什么时候发布?最近正在找好的代码高亮!从D2慕名而来!!
17 楼 Army 2009-09-25  
10.1长假后回来,期待看到新一代的js高亮~

ps:我很好奇js中如何高性能地做到嵌套语言、深度计算、正则和跨行除法区分、跨行string……等等一系列的难题,虽然这些在as中并不算什么难题。
16 楼 hax 2009-09-25  
如果做的话肯定会考虑。实际上PoC(概念验证)版本用来证明它可以达到的最高速度。我剩下的问题是能根据解析规则自动产生这样代码(而不是像PoC那样手写)的代码。如果我时间不够的话,那就先把PoC作为一个单独的版本发布。虽然只支持js,但至少可以作为firebug的高亮插件。
15 楼 Army 2009-09-25  
那html里包含js和css这种嵌套情况会处理吗?
14 楼 hax 2009-09-24  
只针对js的,来得及的话,可能会加上html和css。
13 楼 Army 2009-09-24  
是只针对js的吗,还是会发布多语言版本?
12 楼 luolonghao 2009-09-23  
期待发布
11 楼 hax 2009-09-23  
因个人私事,我最近4个月停止了开发。现已恢复开发,预计10月长假后发布。
10 楼 Shrek82 2009-09-23  
期待中。
9 楼 smoke 2009-09-23  
见过吹的没见过这么吹的
8 楼 Army 2009-09-01  
dojo的我也能2s内跑完了。
7 楼 block 2009-06-24  
原来dojo 0.4.3的代码只有9800行……

相关推荐

    vscode中的语法高亮和语义高亮(Syntax Highlight and Semantic Highlight)

    VSCode 使用 TextMate 的语法解析引擎来实现这一功能。TextMate 是一套基于正则表达式的规则集,它将源代码分解成一个个 token。例如,`def`、`if`、`else` 会被识别为关键字,`function` 后面的字符串会标记为函数...

    脚本实现securecrt语法高亮

    很麻烦,使用脚本则小白都可实现,只要在securtcrt菜单栏选择script-->run,在弹出的对话框中选择highlight.py,这是会让选择高亮语法的配置,给大家提供了3个,即扩展名为.ini的三个文件,一次可任意选择一个,也可...

    VIM语法高亮和SV支持

    实现VIM语法高亮通常需要一个特定的语法文件,这些文件以`.vim`或`.vimrc`扩展名存在。例如,你提供的文件`_vimrc`可能就是VIM的配置文件,其中包含了开启或定制语法高亮的设置。在`_vimrc`中,你可以添加如下的行来...

    WPS代码语法高亮插件V2.0

    此外,良好的语法高亮还能帮助初学者更快地学习和掌握编程语言,因为关键元素的突出显示有助于理解语法规则。 在实际操作中,用户可以通过简单的设置菜单选择自己喜欢的语言和配色方案,或者自定义自己的配色风格,...

    WPS代码语法高亮着色插件

    在编程领域,代码语法高亮是一种常见的编辑器特性,它可以突出显示关键字、常量、字符串、注释等元素,使代码结构清晰,帮助开发者更快地理解和分析代码。对于C++这种复杂的编程语言,高亮显示尤为重要,因为它有...

    editpls语法高亮文件

    它支持多种编程语言,其中一个重要的特性就是其语法高亮显示功能。这个功能能够帮助用户在编辑代码时更容易地识别不同类型的语法元素,如关键词、字符串、注释等,从而提高代码的可读性和编辑效率。 `cpp.stx` 文件...

    一个小的Web应用可以帮助你复制粘贴语法高亮显示的代码到幻灯片

    标题中的“一个小的Web应用可以帮助你复制粘贴语法高亮显示的代码到幻灯片”意味着这个应用专门设计用于帮助用户在制作幻灯片时,能够方便地将带有语法高亮的代码片段复制并粘贴进去。这在技术演讲、教学或者演示中...

    Delphi Memo语法高亮

    在编程领域,文本编辑器和集成开发环境(IDE)中的语法高亮是一项非常重要的功能,它可以帮助程序员更清晰地识别代码结构,提高代码可读性和编写效率。在Delphi和C++Builder这样的集成开发环境中,Memo组件是常用的...

    实现语法高亮显示的VC代码

    一个实现很多语言的语法高亮显示(包括C++、Java等)的源码。实现语法高亮显示主要由四个文件完成的:Syntax.h、Syntax.cpp、SynEditView.h和SynEditView.cpp。其中Syntax.h、Syntax.cpp包含了一系列语言的语法分析...

    Google语法高亮JavaScript功能

    Google语法高亮JavaScript脚本是一个开源项目,用于在网页上实现代码的语法高亮。这个脚本通常被嵌入到HTML页面中,然后对HTML内的代码块进行处理,使其具备色彩丰富的高亮效果。由于它是基于JavaScript的,所以可以...

    用具体的例子来探讨texstudio的语法高亮1

    语法高亮是编辑器中最常用的功能之一,它可以显著提高编程或排版效率,让错误更易于发现。本文将以具体的例子来深入探讨TexStudio中的语法高亮功能。 #### 二、TexStudio语法高亮简介 **语法高亮**是大多数编辑器...

    ultraedit编辑verilog的语法高亮文件

    \Users\XXXX\AppData\Roaming\IDMComp\UltraEdit\wordfiles文件夹中,其中文件夹AppData文件夹可能被隐藏,然后打开UltraEdit点击高级中的设置,搜索语法高亮,在文档的完整目录名称选项中先任意选择一个地址应用,...

    语法高亮控件(ocx)

    这个是我用vb写的一个语法高亮的控件,可以自己修改配置文件来调整高亮。还可以简单的格式化文本。 <br>默认的包含一个SQL的配置文件(其实我的初衷就是用于SQL的语法高亮显示的) <br>使用方法:regsvr32 $...

    UltraEdit 语法高亮文件(常用)

    常用的一些语法高亮文件,放在wordfiles文件夹后,重启软件即可使用。

    jquery语法高亮插件

    "jQuery语法高亮插件"是一个专门为jQuery代码提供色彩鲜明、易于阅读的显示效果的插件。该插件能够帮助用户在网页上展示JavaScript代码,特别是jQuery代码时,使其更加醒目且易于理解。 该插件的压缩包名为"**...

    notepad++主题和语法高亮配置文件.rar

    在这个名为"notepad++主题和语法高亮配置文件.rar"的压缩包中,包含了两个XML文件:Monokai.xml和CalebNight.xml,这些都是Notepad++的主题配置文件,用于改变编辑器的视觉风格。 首先,我们来看Monokai.xml。...

    Code::BLOCKS 语法高亮 C/C++ 标准库 NAMESPACE STD WinAPI WX_API

    Code::BLOCKS 语法高亮使用说明 CB语法高亮 │ CB_STL.png STL语法高亮效果 │ CB_WinAPI.png WINAPI 高亮效果 │ CB_WX_API.png WX_API 高亮效果 │ CodeBlocks_UserKeyWord.png CodeBlocks语法高亮用户...

    editplus语法高亮文件

    3. Velocity:Velocity是Apache软件基金会的一个开源模板引擎,主要用于Java应用程序中的动态网页生成。Velocity的语法高亮文件有助于在EditPlus中突出显示模板语言的指令和变量,便于开发者理解和维护模板代码。 4...

    语法高亮(DISCUZ)

    语法高亮是编程和代码展示领域的一个重要特性,它能够帮助程序员和读者更清晰地识别和理解代码结构。在DISCUZ这样的社区论坛系统中,语法高亮功能可以使用户在发布技术文章或日志时,将代码段以更加醒目、易读的方式...

    GoLang Notepad++语法高亮配置文件

    GoLang Notepad++语法高亮配置文件是一种优化编程体验的方式,尤其对于经常使用Notepad++编辑Go语言代码的开发者来说,这是一个非常实用的功能。本文将详细介绍如何在Notepad++中设置Go语言的语法高亮,并探讨其重要...

Global site tag (gtag.js) - Google Analytics