关于串口接收程序的优化。该怎么解决

关于串口接收程序的优化。
void UARTInrerrupt(void) interrupt 4
{
  unsigned char ch;
  if(RI)
  {
     RI=0;
     ch=SBUF;
     Buff[count++]=ch;
     count=count%100;          //100为缓冲区大小
  }
  if(TI)
  {
     TI=0;
     busy=0;
  }
}
上面是我一般运用的串口接收中断程序。然后去主程序中或者中断里去写个Judege_SeriesData()解析数据。
各位有什么好的方法,确定缓冲区大小开辟多大才合适呢,如果一次我接收96个字符,多大才合适呢。不会溢出,不会因为过大而影响使单片机工作效率降低呢。
------解决方案--------------------
各位有什么好的方法,确定缓冲区大小开辟多大才合适呢,
//通常,我习惯于采用定长,或者能明确数据长度的通信协议。我不太习惯在MCU里搞可变长数据通信。

如果一次我接收96个字符,多大才合适呢。不会溢出,
//会不会溢出,看你缓冲的取长短。当然,是直接取上限。不超过当然不会溢出。

不会因为过大而影响使单片机工作效率降低呢。
//其实,协议的解析,看着代码行很多,很复杂,但是,由于多是条件的识别和分支,执行效率很高的。一般的应用下,不用太担心解析过程中的效率问题