- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在网站上做了一些分析,发现 strtolower 调用花费了意外的长时间。
上下文是
function __autoload($class_name) {
require_once('app/model/' . strtolower($class_name) . '.php');
}
结果是
_0.0092 -> ___autoload() C:\xxx\config.php:0_
0.0093 -> strtolower() C:\xxx\config.php:77
0.0101 -> require-once(C:\xxx.php) C:\xxx\config.php:77
我在跟踪文件的几个地方看到了这一点。
然后我在以下上下文中尝试了该函数
for($i=0;$i<100;$i++) {
strtolower('SomeStRIng' . $i)
}
结果是
0.0026 -> strtolower() C:\xxx\index.php:53
0.0027 -> strtolower() C:\xxx\index.php:53
0.0027 -> strtolower() C:\xxx\index.php:53
0.0027 -> strtolower() C:\xxx\index.php:53
两者之间存在显着差异。当然,这总体上没什么大不了的,但我仍然感到困惑。
最佳答案
您运行的测试规模太小,数据太少。您永远不会获得一致的数据,因为其他系统因素(如 CPU 速度/负载)会造成更大的损失。
您的第一个测试是磁盘绑定(bind)的。降低(希望是合理的)短字符串的大小写基本上是瞬时的,或者至少以微秒为单位进行测量。点击磁盘以定位/加载/解析文件将花费毫秒级的时间。您正在尝试检测您不关心的部分所花费的时间是原来的 1000 倍的差异。即:strtolower 开销是一个舍入误差。
您的第二个测试虽然纯粹受 cpu/内存限制,但也太短而不实用。您不能确定进行 100 次字符串连接(以及相关的内存分配)不会压倒实际的小写。更好的测试是预先构建一系列混合大小写字符串(几百或几千个),然后重复遍历该数组并在 seuqnce 中 strtolower。这样您就可以消除尽可能多的开销/不相关的代码路径,并有望获得更一致的数据。
关于php - 为什么 PHP strtolower 的性能变化如此之大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3542917/
在人们可以注册的 php/mysql 应用程序中,strtolower 用户名然后存储在数据库中以避免将来出现问题是个好主意吗?因为人们使用的是不同的案例,我担心这会在某些查询中产生冲突。 谢谢 最佳
我的网站允许用户使用阿拉伯文/英文名称注册 我正在尝试将用户的名字和姓氏转换为小写 我正在使用这个功能 $first_name = strtolower ( $_POST['first_name']
脚本通过 strtolower() 将 Barak Obama president 变为 barak obama president。 如何将其转回 Barak Obama president? 想要
使用 strtolower()在数组上,有没有办法使输出低于小写? strtolower($rdata['batch_id']) 最佳答案 正确的函数名称是strtolower() .如果你想在数组
我确定这是我遗漏的明显东西,但我有一个存储为 $str 的字符串“GB”,然后使用 strtolower 回显... $str = bp_member_profile_data('field=Coun
1,将字符串转换成小写 strtolower函数: 该函数将传入的字符串参数所有的字符都转换成小写,并以小定形式放回这个字符串。 例子: ?
我在 PHP 将包含特殊字符的字符串转换为小写时遇到问题,在这种情况下尤其是变音符号,因为我正在处理名称。这里的用例是我在一个数组中搜索名称,其中数据库中已经存在的名称都以小写形式显示(实际上由 st
希望是简单的,有没有一种方法可以同时使用 strtolower 和 str_replace。目前我正在改变一个变量的值并单独声明它,我想如果我能一起做这件事会更有效率吗? $afixteam = st
是否可以在preg_replace的替换部分使用strtolower? 这不起作用: preg_replace('/(http:\/\/)?(www\.)?([a-zA-Z0-9\-_\.]+\.(c
我正在尝试将字符串转换为小写,如下所示: @lang(strtolower('header.home')) 这不起作用。任何想法?谢谢。 最佳答案 试试这个: {{ strtolower(__('he
PHP strtolower() 函数应该将字符串转换为小写。但是,它说 in the PHP Manual (强调): Returns string with all alphabetic char
我在网站上做了一些分析,发现 strtolower 调用花费了意外的长时间。 上下文是 function __autoload($class_name) { require_once('app/
我了解 strtolower() 和 mb_strtolower() 函数之间的用法/行为差异。还有它has been asked之前:) 但我不明白 - strtolower 目前的目的是什么? 是
在PHP中,strtolower和mb_strtolower有什么区别? 如果我想转换提交的电子邮件地址,转换为小写,我应该使用哪个?有没有这样的邮箱:Name@Domain-Test.com 如果有
我的页面中有一些非英语/外语的文本,但是当我尝试将其变为小写时,它的字符被转换为包含问号的黑色菱形。 $a = "Երկիր Ավելացնել"; echo $b = strtolower($a);
在数据库中我有这个字段:“TeST”。我不知道大写字符在哪里。我只想strtolower他们并做这样的事情: SELECT * FROM table WHERE strtolower(field) =
我在 JavaScript strToLower() 方面遇到了麻烦 var s = 'tür'; alert(s); alert(s.strToLower()); 应该产生相同的输出。但是输出不同:
出于好奇,我做了一个实验。我想看看 strtolower() 之间是否存在细微差异和 strtoupper() .我期待 strtolower()在大多数小写字符串上会更快,反之亦然。我发现的是 st
我想将“s.value”全部转为小写,然后转为 ucwords,但我不知道该怎么做,因为它在一个表单中。 基本上我想做这样的事情:ucwords(strtolower( s.value here ))
我目前在一个 GREEK 项目中工作。在那个项目中,所有内容都是希腊语,并且我有一个搜索功能。搜索过程很好。但是 strtoupper() 没有将希腊语转换为大写,而 strtolower() 没有将
我是一名优秀的程序员,十分优秀!