我有一个Web服务器程序来处理来自浏览器的请求,该程序是用c ++编写的。有很多服务,bbs / wiki / news,仅举几例。他们有不同的网址,例如:
/ BBS / viewtopic?TID = 1
/ wiki / doc?did = 1
/消息/ ARTICAL?援助= 1
现在我自己做URI解析,然后再做其他事情。我在这里以bbs为例,如果字符串以/ bbs /开头,bbs将接管后续进程,然后bbs将继续检查它是否为viewtopic,如果是,则sever将主题内容发送给客户端...
我有很多if if to dispatch请求到不同的服务,同时,每个服务都有很多,否则也做不同的行为。
我不知道其他是否是明智的选择,即使代码很容易理解。 这种应用程序的正则表达式更快吗?
感谢您的参与:)
答案 0 :(得分:4)
通常,通用编程框架(包括使用正则表达式)会导致编写速度更慢的代码。什么是正则表达式库可能会让你花费大量时间以不重要的CPU时间为代价编写代码。更常见的瓶颈是数据库的带宽,磁盘io和CPU使用率(如果它在同一台机器上)。
如果这很重要,我会明确地说你可以通过避免使用正则表达式库来获得更快的代码,但是你应该对你的实现进行基准测试,如果没有其他原因可以改进它。我没有在C ++中测试它们以了解它们的效率,但是在示例程序中测试例程将是一项额外的工作。
答案 1 :(得分:2)
如果你的if/else
只检查字符串的前缀,那么它会更快。如果它更复杂,需要对字符串进行多次传递,那么您应该自己测量性能。
伟大的工程来自于创造可预测的结果 可预测的成本。事实上,我喜欢说,如果你没有测量 你不是工程师。
Rico Mariani