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 с.