我正在为我的应用程序设计类( 网络 </跨度> 工具)。我这个基类:
类描述符{ // …
上市: 虚拟 </跨度> void data_read(void); 虚拟 </跨度> void data_write(void锟); 虚拟 </跨度> void data_error(void);
保护: int socket_descriptor; // …}
class TcpClient: 公共描述符{ // …}
许多类都基于Descriptor锟
老实说,优化此代码的最佳选择可能是完全取代它 提升ASIO 。如上所述,您实际上是在重新实施经过严格审查且经过充分测试的ASIO库。除非你绝对肯定你必须推出自己的I / O库,否则你可能会节省大量的开发工作。通过使用现有解决方案来优化时间。
在下面 不要重新发明轮子 伞,我建议看看 Boost.Asio的 因为它提供了示例代码中描述的大部分功能。
除非另有证明,否则您的原始设计对我来说很好。
优化的第一个规则是先测量,然后只修复真正存在的热点。你的代码花费时间的地方会让你感到惊讶。关注虚函数和函数指针之间的区别几乎肯定是过早的优化。在这两种情况下,编译器都会生成跳转到函数指针的代码,但是对于虚函数,编译器必须首先查找vtable。编写惯用的C ++代码来执行您想要的操作,然后在遇到性能问题时对其进行配置。
(我对你的班级有一个评论 Descriptor :除非您计划使用通用的data_read(),data_write()和data_error()方法,否则我建议将它们作为纯虚方法。)
Descriptor