自己用C++实现了ftp协议用于摄像头拍摄后的图片上传,在本地测试(客户端和服务端位于同一台机器上)上传速度很快没有发现问题,但部署到现场环境时,速度出奇的慢,上传1M的图片大约需要6s左右。猜想应该是上传函数出了问题,为验证想法的正确性 ,单独写了一个测试上传函数的ftp测试软件,自动生成图片并上传到服务器,软件使用两种方法,一种是自己实现的ftp库,另一种是第三方库,但经过多个现场环境的测试,两种方法测试结果一样,都很慢,费了很大的力气,但验证了不是上传函数的问题,只能另找原因。后来,在程序中添加了时间统计的功能,把每个与ftp有关的操作所花费的时间都输出到一个文件中,发现了问题所在 。原来问题出在重命名和删除操作中,为了程序的健壮性,加了这些操作,删除以后,速度一下就提上去了,问题终于解决了。
奇怪的是,在本地测试时没有感觉差距如此明显,也许与ftp安全设置有关系吧,未经验证。