本文用于验证使用接口与接口断言是否会产生性能损失这一问题。
说明
本文采用GO内置的testing模块进行测试。测试代码主要使用老师提供的位于StackOverflow上的代码,我将其摘录下来后存放在项目中,此处为测试代码。
测试环境:CentosOS 7
注意
测试代码文件必须以_test.go作为结尾,例如我使用的文件命名为 surface_test.go, 否则系统将提示找不到待测试的文件
测试结果
测试命令:go test -bench=.
结果输出:
结果说明:
此实验结果可以看到,使用Type Switch和Type Assertion的方式访问某个方法的速度与直接调用该方法所花费的时间大致相同,但通过接口调用所花费的时间是上述方法的4-5倍。这与实验样例提供的参考答案不一致,这很有可能是由于测试平台的差异造成的。这说明在Centos系统中,使用接口断言不会产生性能损失,而通过接口调用方法会造成性能损失。