在代码中看到有人在替换字符串前,先校验字符串存在再进行替换,觉得效率不高,浪费了一次计算,进行了简单的效率测试。
测试条件 | 耗时 |
---|---|
包含 & 校验 | 00:00:05.2842240 |
包含 & 不校验 | 00:00:04.8745234 |
不包含 & 校验 | 00:00:01.9206545 |
不包含 & 不校验 | 00:00:02.9747488 |
如果预期待替换的字符串大多数不包含要替换的子字符串,“不包含 & 校验”是最优写法;如果预期待替换的字符串绝大多数包含要替换的子字符串,“包含 & 不校验”更佳一点点。实际的使用场景是拼接SQL语句的变量时,为避免SQL注入替换变量中的“'”为“"”,符合“不包含 & 校验”的最佳实践。