如何衡量SW API?

时间:2012-03-05 22:18:54

标签: software-design

我知道如何使用LOC,SLOC或任何其他指标来衡量模块实施。

但我想知道:是否有可能“测量”几种不同的API以找到“最好的”?

例如: Nucleus RTOS: STATUS NU_Create_Semaphore(NU_SEMAPHORE *信号量,CHAR *名称,UNSIGNED initial_count,OPTION suspend_type);

Posix:int sem_init(sem_t * sem,int pshared,unsigned int value);

例如,我们可以说Nucleus OS中信号量的创建应该使用比Posix变量更多的堆栈。那么我们可以得出结论,在这种情况下,如果我们使用“堆栈大小”作为“度量”,Posix是更好的API吗?

或者这种分析只是愚蠢的?

如果上面不是愚蠢的那么我想知道更多:测量覆盖相同功能的API(创建sempahore,创建线程等)是“容易的”但是如何测量提供功能不相同的相同功能的API “?

我可以想象使用不同的API制作相同功能的测试。 在通过不同的指标(内存消耗,LOC,SLOC等)比较几个这样的创建测试后,我可以得出结论,一个API比其他API更好吗?

TIA

2 个答案:

答案 0 :(得分:2)

  1. 找到为您提供所需功能/功能的API
  2. 从那些中,使用最简单的那些。
  3. 长期,简单性和可维护性比性能更重要,特别是如果此API不是来自应用程序本地库而是远程服务。

答案 1 :(得分:0)

真的取决于你的判断标准。 最佳选择是列出所有可用的API以满足您的所需功能 确定一个判断标准,可以根据您的要求 它可以是时间复杂度(功能的顺序),空间复杂性,易用性,您对API的理解,在其他模块中的可用性或您的应用程序要求,并根据它做出判断。