语言之争由来已久,下面做一些IO实验(遍历9G多的文件,批量删除),尽量用事实来比较谁优谁劣。操作系统:win7 64 位,文件包大小:9.68G。
一、语言:C#
开发环境:vs 2013
代码总行数:43行
耗时:7秒
代码:
删除
if (Directory.Exists(path))
{
Console.Write("正在删除");
foreach (string fileName in Directory.GetFileSystemEntries(path))
{
if (File.Exists(fileName) && fileName.Contains("cachegrind.out"))
{
File.Delete(fileName);
}
}
Console.WriteLine("");
}
else
{
Console.WriteLine("该目录不存在!");
}
// 计时结束
Console.WriteLine("结束计时:" + DateTime.Now.ToString("HH:mm:ss"));
Console.ReadKey();
}
}
}
运行效果图:
二、语言:C/C++
开发环境:vs 2013
代码总行数:50行
耗时:36秒
代码:
#include
#include
#include
#include
#include
#include
using namespace std;
int main(int argc,char * argv[])
{
// 输入目录 e:\tmp
string strPath;
cout << "输入要清理的目录:" << endl;
getline(cin,strPath);
// 开始计时
SYSTEMTIME sys_time; //声明变量
GetLocalTime(&sys_time); //将变量值设置为本地时间
printf("开始计时:%02d:%02d:%02d\n",sys_time.wHour,sys_time.wMinute,sys_time.wSecond);
// 先遍历匹配查找再循环删除
namespace fs = boost::filesystem;
fs::path full_path(fs::initial_path());
full_path = fs::system_complete(fs::path(strPath,fs::native));
if (fs::exists(full_path))
{
cout << "正在删除" ;
fs::directory_iterator item_begin(full_path);
fs::directory_iterator item_end;
for (; item_begin != item_end; item_begin++)
{
if (!fs::is_directory(*item_begin))
{
if (fs::exists(item_begin->path()) && boost::contains(item_begin->path().string(),"cachegrind.out"))
{
fs::remove(item_begin->path());
}
}
}
cout << "" << endl;
}
else
{
cout << "该目录不存在!" << endl;
}
// 计时结束
GetLocalTime(&sys_time);
printf("计时结束:%02d:%02d:%02d\n",sys_time.wSecond);
system("pause");
return 0;
}
运行效果图:
三、语言:PHP
开发环境:PHPstorm
代码总行数:32行
耗时:13秒
代码:
PHP;">
PHP
/**
* Created by PHPStorm.
* User: Administrator
* Date: 16-1-29
* Time: 上午9:31
*/
date_default_timezone_set('prc');
//输入目录 e:\tmp
$path = 'e:\tmp';
//开始计时
echo date("H:i:s",time()) . '
'; //先遍历匹配查找再循环删除 if(is_dir($path)) { echo "正在删除"; $mydir = dir($path); while($file = $mydir->read()) { if(file_exists("$path/$file") && strpos($file,'cachegrind.out') === 0) { unlink("$path/$file"); } } echo '
'; } else { echo "该目录不存在!" . '
'; } //计时结束 echo date("H:i:s",time()) . '
';
'; //先遍历匹配查找再循环删除 if(is_dir($path)) { echo "正在删除"; $mydir = dir($path); while($file = $mydir->read()) { if(file_exists("$path/$file") && strpos($file,'cachegrind.out') === 0) { unlink("$path/$file"); } } echo '
'; } else { echo "该目录不存在!" . '
'; } //计时结束 echo date("H:i:s",time()) . '
';
运行效果图:
四、语言:Java
开发环境:eclipse
代码总行数:43行
耗时:10秒
代码:
删除
File dir = new File(path);
if(dir.exists()){
System.out.print("正在删除");
File[] fs = dir.listFiles();
for(int i=0;i
运行效果图:
五、语言:Python 3.3.5
开发环境:IDLE
代码总行数:20行
耗时:10秒
代码:
删除
if(os.path.exists(path)):
print("正在删除");
for parent,dirnames,filenames in os.walk(path):
for filename in filenames:
targetFile = os.path.join(parent,filename)
if (os.path.isfile(targetFile) and "cachegrind.out" in targetFile):
os.remove(targetFile)
else:
运行效果图:
原文链接:https://www.f2er.com/php/20425.html