Javascript 缓存pagedown转换器对象有什么意义吗?
缓存转换器对象有什么意义吗?建造成本有多高?或者我可以这样做吗Javascript 缓存pagedown转换器对象有什么意义吗?,javascript,pagedown,Javascript,Pagedown,缓存转换器对象有什么意义吗?建造成本有多高?或者我可以这样做吗 function convertMarkdown(str) { var converter = new Markdown.Converter(); return converter.makeHtml(str); } 它取决于Markdown.Converter函数以及调用它的频率,但您可以轻松创建一个包含对转换器实例引用的函数,这样就不需要每次调用都重新创建它: var convertMarkdown = (fun
function convertMarkdown(str) {
var converter = new Markdown.Converter();
return converter.makeHtml(str);
}
它取决于
Markdown.Converter
函数以及调用它的频率,但您可以轻松创建一个包含对转换器实例引用的函数,这样就不需要每次调用都重新创建它:
var convertMarkdown = (function{
var converter = new Markdown.Converter();
return function(str){
return converter.makeHtml(str);
}
})()
它取决于
Markdown.Converter
函数以及调用它的频率,但您可以轻松创建一个包含对转换器实例引用的函数,这样就不需要每次调用都重新创建它:
var convertMarkdown = (function{
var converter = new Markdown.Converter();
return function(str){
return converter.makeHtml(str);
}
})()
converter对象构造起来相当便宜。通常不会进行重大初始化。在我的(相当结实的)机器上快速测量:创建一百万个转换器对象
- Chrome需要8秒(5倍)
- Opera需要14秒(10倍)
- IE需要4秒(3倍)
- Safari 5需要2.5秒(5倍)
- Firefox需要44秒(20倍)
“Hello”
(请注意,此字符串甚至不包含任何格式)所需的时间一百万次
- Chrome需要13秒
- 歌剧需要86秒
- 他需要17秒
- Safari 5需要25秒
- Firefox需要200秒
var s = new Markdown.Converter().makeHtml(src);
vs
或(使用)
–当在更大的上下文中浏览该代码时,第一个版本需要再看一眼,以注意到对象的创建只是行目的的次要部分
如果您在converter对象上注册插件,创建过程甚至需要多条语句,这使得只需创建一次对象就更好了。converter对象的构建成本相当低。通常不会进行重大初始化。在我的(相当结实的)机器上快速测量:创建一百万个转换器对象
- Chrome需要8秒(5倍)
- Opera需要14秒(10倍)
- IE需要4秒(3倍)
- Safari 5需要2.5秒(5倍)
- Firefox需要44秒(20倍)
“Hello”
(请注意,此字符串甚至不包含任何格式)所需的时间一百万次
- Chrome需要13秒
- 歌剧需要86秒
- 他需要17秒
- Safari 5需要25秒
- Firefox需要200秒
var s = new Markdown.Converter().makeHtml(src);
vs
或(使用)
–当在更大的上下文中浏览该代码时,第一个版本需要再看一眼,以注意到对象的创建只是行目的的次要部分
如果您在converter对象上注册插件,创建过程甚至需要多条语句,这使得只需创建一次对象就更好了。很公平。不过,我还是想知道为什么我首先需要这么做。:-)很公平。不过,我还是想知道为什么我首先需要这么做。:-)