tpinit
和tptern
燕尾服功能需要时间。它基本上用于客户端加入和离开应用程序的每个请求。当来自多线程客户端进程的请求数量较高时,我们观察到速度很慢。
我们尝试增加机器中的虚拟核心,但仍然面临同样的问题。
TPINIT * tpinitbuf;
if((tpinitbuf = (TPINIT *)tpalloc("TPINIT",(char *)NULL,TPINITNEED(16))) == (TPINIT *)NULL)
{
printf("ERROR IS:: %s\n", tpstrerror(tperrno));
return NULL;
}
tpinitbuf->flags = TPMULTICONTEXTS;
tpinit(tpinitbuf); //this function is taking time.
tpgetctxt(&ctxt, 0);
tpfree ((char *) tpinitbuf) ;
retVal=tpcall("MY_SERVICE",(char *)buf1,0,(char **) &buf2,&size,0L);
tpterm(); // this function is taking time.
理想情况下tpinit
,tpterm
应该需要大约 50 毫秒,但是当请求数量很高时,大约需要 1.3 秒。