替代标题(以帮助搜索)
如果iOS应用程序小于100MB,则只能通过3G下载.减少应用程序大小的最佳策略是什么?
我想关注的领域是:
注意: 原始问题可以在这个问题的修订版中查看
是否有可在iPhone上使用的压缩API?我们正在为我们的iPhone应用程序构建一些RESTful Web服务,但我们希望至少压缩一些对话以提高效率.
我不关心格式(ZIP,LHA,等等)是什么,并且它不需要是安全的.
一些受访者指出服务器可以压缩其输出,而iPhone可以消耗它.我们的情景正好相反.我们将压缩内容发布到 Web服务.我们并不关心压缩的另一种方式.
我有一个MVC应用程序视图,生成相当大的HTML值表(> 20MB).
我正在使用压缩过滤器压缩控制器中的视图
internal class CompressFilter : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
HttpRequestBase request = filterContext.HttpContext.Request;
string acceptEncoding = request.Headers["Accept-Encoding"];
if (string.IsNullOrEmpty(acceptEncoding))
return;
acceptEncoding = acceptEncoding.ToUpperInvariant();
HttpResponseBase response = filterContext.HttpContext.Response;
if (acceptEncoding.Contains("GZIP"))
{
response.AppendHeader("Content-encoding", "gzip");
response.Filter = new GZipStream(response.Filter, CompressionMode.Compress);
}
else if (acceptEncoding.Contains("DEFLATE"))
{
response.AppendHeader("Content-encoding", "deflate");
response.Filter = new DeflateStream(response.Filter, CompressionMode.Compress);
}
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法在运行压缩过滤器之前消除视图中生成的(非常大)冗余空白量(以减少压缩工作量和大小)?
编辑: 我使用下面的Womp建议的WhiteSpaceFilter技术.
感兴趣的是Firebug分析的结果:
1)没有压缩,没有空白条 - 21MB,2.59分钟
2)使用GZIP压缩,没有空白条 - 2MB,17.59s
3)使用GZIP压缩,空白条--558kB,12.77s
所以当然值得.
我想告诉两个tarball文件在文件名和文件内容方面是否包含相同的文件,不包括日期,用户,组等元数据.
但是,有一些限制:首先,我无法控制在制作tar文件时是否包含元数据,实际上,tar文件总是包含元数据,因此直接对两个tar文件进行区分不起作用.其次,由于一些tar文件太大,以至于我无法将它们解压缩到临时目录中并逐个区分包含的文件.(我知道如果我可以将file1.tar解压缩到file1 /中,我可以通过在文件/中调用'tar -dvf file2.tar'来比较它们.但通常我甚至不能解压它们中的一个)
知道如何比较两个tar文件吗?如果可以在SHELL脚本中完成它会更好.或者,有没有办法获得每个子文件的校验和而不实际解压缩tarball?
谢谢,
情况如下:
我从Amazon S3获取gzip xml文档
import boto
from boto.s3.connection import S3Connection
from boto.s3.key import Key
conn = S3Connection('access Id', 'secret access key')
b = conn.get_bucket('mydev.myorg')
k = Key(b)
k.key('documents/document.xml.gz')
Run Code Online (Sandbox Code Playgroud)我把它们作为文件阅读
import gzip
f = open('/tmp/p', 'w')
k.get_file(f)
f.close()
r = gzip.open('/tmp/p', 'rb')
file_content = r.read()
r.close()
Run Code Online (Sandbox Code Playgroud)题
如何直接解压缩流并读取内容?
我不想创建临时文件,它们看起来不太好.
为了纪念Hutter奖,文本压缩的顶级算法(以及每个算法的快速描述)是什么?
注意:这个问题的目的是获得压缩算法的描述,而不是压缩程序的描述.
当文件当前在内存中时,有没有办法创建包含多个文件的Zip存档?我想保存的文件实际上只是文本,并存储在我的应用程序的字符串类中.但我想将多个文件保存在一个独立的存档中.它们都可以在归档的根目录中.
能够使用SharpZipLib做到这一点会很高兴.
我正在通过录制屏幕和我的声音来做一系列教程.正如PNG最适合截图一样,而JPEG更适合照片(虽然有损),哪种视频编码和容器格式更适合屏幕录制?
请提供以下建议:
需要考虑的要点:
我是Visual Studio编程的新手.
我最近将.Net 4.0升级到4.5以便在System.IO.Compression下使用ZipFile类,但是在安装完成后,Visual Studio(我使用2012)仍然无法将ZipFile识别为类名.
我确保.Net 4.5出现在控制面板程序列表中,而我的C#解决方案将.Net Framework 4设置为目标框架.
有人可以帮我解决这个问题吗?
我在tomcat的conf/server.xml文件中添加了以下行以启用gzip压缩,但它无法正常工作.页面仍然是未压缩的.
<Connector port="8080"
compression="on"
compressionMinSize="2048"
noCompressionUserAgents="gozilla, traviata"
compressableMimeType="text/html,text/xml,text/plain,text/css,
text/javascript,text/json,application/x-javascript,
application/javascript,application/json"/>
Run Code Online (Sandbox Code Playgroud)
任何的想法?