优化update函数