我尝试在CLI中配置我的node.js脚本.
如https://code.google.com/p/v8/wiki/V8Profiler或http://blog.arc90.com/2012/03/05/profiling-node-programs-on-mac-os-所述x / a do:
$ node --prof my_script.js
Run Code Online (Sandbox Code Playgroud)
好的,我得到的文件以v8.log一堆行命名.
但随后在检查工具中出错了.
$ tools/mac-tick-processor v8.log
Run Code Online (Sandbox Code Playgroud)
向我展示
Statistical profiling result from v8.log, (298 ticks, 237 unaccounted, 0 excluded).
Run Code Online (Sandbox Code Playgroud)
和空的JavaScript部分.
[JavaScript]:
ticks total nonlib name
Run Code Online (Sandbox Code Playgroud)
我也尝试https://github.com/bnoordhuis/node-profiler,但也得到了一些结果.
我如何使用--prof结果?
$ node -v
v0.8.18
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.7.4
BuildVersion: 11E53
Run Code Online (Sandbox Code Playgroud) 我开始学习AnyEvent并且有一些麻烦.我完全误解了如何获得异步利润,fe:
#!/usr/bin/env perl
package LatencySub;
use strict;
use warnings;
use AnyEvent;
# sub for emulate latency - is it right way?
sub do_delay{
my ($name, $delay) = (@_);
my $cv = AE::cv;
my $timer = AE::timer $delay, 0, sub { $cv->send() };
$cv->recv;
return $name.' proceed, delay is '.$delay;
};
package main;
use 5.12.0;
use warnings;
use Smart::Comments;
use AnyEvent;
my @list = (
{ name => 'first', delay => 1 },
{ name => 'second', delay => 1 }, …Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的替代:
my $s = "<a>test</a> <a>test</a>";
$s =~ s{ <a> .+? </a> $ }{WHAT}x;
print "$s\n";
Run Code Online (Sandbox Code Playgroud)
打印:
WHAT
Run Code Online (Sandbox Code Playgroud)
但我期待:
<a>test</a> WHAT
Run Code Online (Sandbox Code Playgroud)
在与ungreedy选项交互时,我对"结束字符串锚"有什么误解?
所以,我对regexp引擎错了.实际上,不要将代码人性化 - 它正确地做了你写的,而不是你" 想做 ".
它首先找到<a>,然后找到</a>$.第一次锁定为正,模式匹配.
正确的模式必须是:
$s =~ s{ <a> (?! .* <a> ) .* </a> }{WHAT}x;
Run Code Online (Sandbox Code Playgroud)
多数民众赞成给我正确的
<a>test</a> WHAT
Run Code Online (Sandbox Code Playgroud)
因为现在我真的问正则表达式的最后 <a>.
我认为效率较低[^<]+,但更灵活.