以下PHP代码确实返回了大约3.5秒的运行时间(多次测量并取平均值):
$starttime = microtime(true);
exec('/usr/local/bin/convert 1.pdf -density 200 -quality 85% 1.jpg');
$endtime = microtime(true);
$time_taken = $endtime-$starttime;
Run Code Online (Sandbox Code Playgroud)
当我在ssh终端上运行相同的命令时,运行时间减少到大约0.6秒(使用命令行工具测量time).
imagemagick库的版本是
Version: ImageMagick 6.7.0-10 2012-12-18 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2011 ImageMagick Studio LLC
Features: OpenMP
Run Code Online (Sandbox Code Playgroud)
这个时差的原因是什么?
在stackoverflow上对类似问题的一个答案是,开销来自必须启动线程/ shell的Web服务器.这可能是真的吗?我认为线程是轻量级的,并且不需要花很长时间才能启动/终止.
在调用之前exec我设置了imagemagick使用的线程数(因为这是/在OpenMP中的错误?,参考)到1 exec('env MAGICK_THREAD_LIMIT=1');.无论我设置什么值,PHP的运行时都没有太大变化MAGICK_THREAD_LIMIT.无论如何,在这个版本中OpenMP上似乎没有错误,因为命令行执行的运行时是可以的.
任何关于如何改进上述命令的运行时间的建议将不胜感激.
非常感谢您的帮助.
我想从spark shell访问Amazon公共数据集存储库中的commoncrawl文件.这些文件是WARC.GZ格式.
val filenameList = List("s3://<ID>:<SECRECT>@aws-publicdatasets.s3.amazonaws.com/common-crawl/crawl-data/CC-MAIN-2014-41/segments/1410657102753.15/warc/CC-MAIN-20140914011142-00000-ip-10-196-40-205.us-west-1.compute.internal.warc.gz")
// TODO: implement functionality to read the WARC.GZ file here
val loadedFiles = sc.parallelize(filenameList, filenameList.length).mapPartitions(i => i)
loadedFiles.foreach(f => f.take(1))
Run Code Online (Sandbox Code Playgroud)
我现在将实现一个函数来读取mapPartitions函数中的WARC.GZ格式.这是一个很好的方法吗?我问,因为我对Spark平台还不熟悉,并希望使用commoncrawl语料库的一小部分实现一个小型演示应用程序.我在这里看到了一个线程中使用的mapPartitions .
我是第一次尝试,我试图使用sc.textFile("s3:// ....").take(1)直接从我自己的计算机打开文件,导致访问被拒绝错误.是否只能从EC2实例访问S3 amazon公共存储库文件?
amazon-ec2 ×1
amazon-s3 ×1
apache-spark ×1
common-crawl ×1
exec ×1
performance ×1
php ×1
runtime ×1