Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从服务器下载iPhone上的图像时出现性能问题_Iphone_Performance_Image_Download - Fatal编程技术网

从服务器下载iPhone上的图像时出现性能问题

从服务器下载iPhone上的图像时出现性能问题,iphone,performance,image,download,Iphone,Performance,Image,Download,我们在iPhone上有一个应用程序。此应用程序每页/屏幕显示25种产品。首先从服务器下载所有25种产品的文本项,如产品名称、价格、折扣、产品图像的URL等 之后,我们发出25个同步请求,一个接一个地下载25个产品映像。每个图像的大小约为25KB,大小约为300 x 400像素,我们只需要72 x 72像素的图像就可以在iPhone上显示。我们注意到,显示一个屏幕/页面大约需要40秒,这种性能并不好。因此,我们正在研究如何提高性能 如果我们将服务器上的图像大小缩小到72×72像素,性能是否会提高

我们在iPhone上有一个应用程序。此应用程序每页/屏幕显示25种产品。首先从服务器下载所有25种产品的文本项,如产品名称、价格、折扣、产品图像的URL等

之后,我们发出25个同步请求,一个接一个地下载25个产品映像。每个图像的大小约为25KB,大小约为300 x 400像素,我们只需要72 x 72像素的图像就可以在iPhone上显示。我们注意到,显示一个屏幕/页面大约需要40秒,这种性能并不好。因此,我们正在研究如何提高性能

  • 如果我们将服务器上的图像大小缩小到72×72像素,性能是否会提高
  • 也可以将所有25张图片从服务器下载到iPhone上吗?如果是的话,你能分享一下你的方法吗?只有当它能够提高性能时,我们才会这样做

  • 1.如果您将它们的大小调整为72x72,那么您可以下载的总大小将更小,因此下载速度更快

    2.对于批处理,我没有解决方案,但您可以尝试对每个文件发出异步请求。在下载时放置一个临时图像(徽标或其他东西)。下载映像后,用新映像替换临时映像。 您可以将图像放入缓存中,以避免每次都下载它们

    对于异步下载,您可以使用(它还有一个缓存类)


    如果您执行同步请求,那么您的GUI将冻结,直到它们完成。

    首先,在服务器上缩放图像是一件完全不需要动脑筋的事情-不需要下载任何您必须下载的数据

    完成后,您将看到显著的性能改进,通过使用占位符图像并在后台异步下载真实图像,可以进一步提高性能。(对于此类功能,该库是一个很好的包装器。)


    最后,如果合适,您应该使用图像缓存并在本地存储图像(可能在SQLite数据库中使用引用)。但是,您需要偶尔对此进行维护,以将其保持在合理的文件大小限制内

    **您可以使用sdwebimage framework在ios中从服务器下载图像** **你可以使用这个链接**


    这很好。如果我们在一个请求中异步下载,性能会显著提高吗?你的想法是什么?ASIHTTPRequest不能批量下载(对于每个需要发出下载请求的文件)。它有一个队列,用于添加下载请求并对其进行处理(如果我没记错的话,您可以设置一次要处理的最大请求数)。如果你调整图像大小并异步下载,你的应用程序会表现得更好。