我有一个我为路由组件编写的代码,这里是完整的代码,它基本上构建了许多小的(特定于路由的)大量的任意数量的大正则表达式(取决于配置值)以验证是否注册路由可以或不可以映射给定请求.
一般过程包括首先装饰每条路线,以便使用占位符的路线
/path/to/:variable_name
Run Code Online (Sandbox Code Playgroud)
变成像这样的正则表达式:
/path/to/(?P<R1V1>[^/]+)
Run Code Online (Sandbox Code Playgroud)
在验证时,这条路线在每批任意大小的单个正则表达式中粘合在一起.
对于"正常"使用,比如说有500个占位符的路由,它运行得很好.不过,虽然基准它,我注意到了一个非常大的数量的占位符AND和路线非常大的量(目前11个占位符和50000个路由)我的代码在找到最后的注册路由失败.
我无法弄清楚为什么.据我所知,事情应该大致以相同的方式表现,采取(可能?我的O符号生锈)每个数量级的O(n*m)次(n是批量,m是多少)正则表达式是批量存在的).
也许这是我正在测试它的方式?如果不是,请你指点我正在做的任何有问题的事情?
如果有任何用处,我使用的基准测试就是这里的基准测试
<?php
require dirname(__FILE__).'/../vendor/autoload.php';
$router = new \CFV\Router();
$dispatcher = new \CFV\Dispatcher();
$dispatcher::$ROUTES_PER_LOT = 20;
// $dispatcher::$THROW_ON_FAIL = true;
$callback = function (){};
$num_args = 11;
$routes_amount = 50000;
$matches_amount = 1;
$args = implode('/', array_map(function($i){ return ':arg' . $i; }, range(1, $num_args)));
$params = implode('/', array_map(function($i){ return '_arg' . $i; }, range(1, $num_args)));
$last_tried = '';
$load_start = microtime(true);
for ($i = 0, $str = …Run Code Online (Sandbox Code Playgroud) 这次我有很多问题,虽然它们都与同样的问题有关:我想在Android中构建一个基本的声纳,并且不知道如何做这样的事情.
只是想在这里定位,因为我对移动应用程序中的声音处理真的很陌生.提前致谢!
我有一个箭头 SVG,设置如下:
<svg xmlns="http://www.w3.org/2000/svg" version="1.0" viewBox="0 0 100 100" class="arrow">
<g class="tail">
<circle (...)></circle>
</g>
<g class="body">
<rect (...)></rect>
</g>
<g class="head">
<polygon (...)>
</g>
</svg>
Run Code Online (Sandbox Code Playgroud)
我想对其进行设置,以便在通过 CSS 调整其大小时,无论其大小如何,
tail相同的比例保留在左侧,head留在右侧,也具有相同的比例,并且body无限期地水平拉伸。我可以这样做吗?我怎样才能做到这一点?
我有这个设置:
//./things/Base.ts
export default class Base{
constructor(){
console.log("HI I AM A BASE THING");
}
}
//things.ts
import Base = require('./things/Base');
export = {
defaultThing: Base
};
//entry.ts
import Things = require('./things');
new Things.defaultThing();
Run Code Online (Sandbox Code Playgroud)
我正在尝试做的是使用我想要的类给定类型的键构建一个字典,让我更改底层实现而不触及消费代码.此操作失败,并显示以下消息
? tsc entry.ts
entry.ts(3,1): error TS2351: Cannot use 'new' with an expression whose type lacks a call or construct signature.
Run Code Online (Sandbox Code Playgroud)
为什么这个和什么是正确的成语?
android ×1
aspect-ratio ×1
distortion ×1
pcre ×1
php ×1
regex ×1
svg ×1
tsc ×1
typescript ×1
waveform ×1