Windows API:调用API函数有多贵?

Eli*_*Eli 2 winapi

调用API函数是否被视为昂贵的操作?(当将它与作为我的应用程序一部分的函数调用进行比较时)
我理解一些API函数会导致内核模式的跳跃,但对所有这些函数都是如此吗?

更具体一点:调用GetThreadId函数有多贵 ?

Mic*_*ael 6

任意线程的GetThreadId需要内核切换,因此它比GetCurrentThreadId更昂贵,GetCurrentThreadId从用户模式检索缓存数据.

API的成本高度依赖于API本身的性质.从用户模式检索缓存值的API非常便宜,转换到内核模式的API要贵得多,大约为微秒.读取或写入磁盘的API可能需要几十毫秒的时间.在网络上工作的API可能需要几秒或几分钟.