工作中,偶尔需要编辑一些大文件,比如 log 文件,后者一些变态的 SQL,此时用平常的编辑器就会显得力不从心,要么直接打不开,要么打开后卡得要死。

本文就给大家推荐几款可以操作大文件的编辑器,准备好小板凳,开始吧。

本机配置:Windows10,16G 内存,i5 处理器。

Notepad++

第一站,就拿我本机的记事本替代者 Notepad++ 开刀。

网上传闻 Notepad++ 打开大文件不佳,Notepad++ 可以打开 600M 左右的文件,大于 700M 就直接无法打开了,一般 >400m 就会卡死。

那么它的真实体验如何呢?

于是就从服务器上,找来了一个 2.3G 大小的文件来进行测试。

将其拖到 Notepad++ 中,直接不行:

那我们拿一个小点的,200M 多点的文件再试一下

结果呢?

大家隔着屏幕,应该无法感受我在电脑前的感受

打开用了好几秒,打开后无法滚动,我的鼠标都快滑烂了

好不容易能上下拉了,没拉几下,还卡死了!

直接程序无响应了!

Notepad++ 是很优秀,但是在打开大文件方面,简直是一塌糊涂!

超过 100M 的文件,用 Notepad++ 打开时,请慎重!

Sublime Text

下面我们用很多人都喜欢的 Sublime Text 来试下。

首先,比 Notepad++ 好的地方是,2.3G 的文件起码是能打开的

没有报错

但是,Sublime Text 开始加载文件了

我大概计了个时

加载 2.3G 的文件,一共用了 4 分多钟

我就一直盯着加载页面

不过总算加载完了

正当我准备滑动我的鼠标查看文件时

再看一眼 Sublime Text 的内存占用情况

看得出来,它是一次性将文件全加载到内存中了

所以,Sublime Text 也是很优秀,但是打开大文件,同样一塌糊涂。

VSCode

编辑器界的新秀 VSCode 在大文件方面又能表现如何呢?

当我把文件拖入到 VSCode 时,弹出了如下提示

按照提示进行重启后,再次尝试打开文件

一直处于加载中

加载一段时间后,又弹出了这个页面

后又多次尝试打开,均以失败告终

所以,VSCode 打开大文件,失败!

UltraEdit

现在再来试一下老牌的 UltraEdit,网上说它是可以打开大文件的,那我们就看下到底表现如何。

打开有了几十秒的时间,并且打开过程中卡死

但是打开后,文件浏览起来还是很顺滑的。

直接进行编辑好像也没什么问题

但是当我使用 ctrl+z 进行撤销操作,或者进行文件保存

还是卡住了

我们发现,其实 UltraEdit 内存占用很小,这种情况下,仍然能够顺滑浏览大文件,难道是因为我的 SSD?

总之,UltraEdit 要比 Notepad++ 和 Sublime Text 表现要好多了。

EmEditor

好了,做了这么多铺垫,到了主角出现的时候了,它就是:EmEditor

EmEditor 是一个比较小众的编辑器,当年实习时,只有当年实习时看到指导老师用过,此后多年,没再看到过它的身影。

知乎上甚至还有一个问题:为什么用 EmEditor 的人不多?

回答者对其的评价颇高,有人甚至称其为:Windows平台下最棒的文本编辑工具!没有之一!

评价都是『幸存者偏差』,我们不过多关注,到底怎样,拉出来溜溜

1、加载大文件,没有出现卡死的情况;

2、浏览文件,同样顺滑;

3、编辑大文件,不费力气;

4、保存时,出现短暂卡死的情况;

总之,这是今天所有测试下来,大文件打开表现最优秀的一个。

总结

本文并没有比较各个编辑器的意图,所以对于各个编辑器的优劣不做评价。

本文只是实验在大文件编辑的情况下,到底谁的表现更为突出。

综合结论:EmEditor ≈ UltraEdit > Sublime Text ,VSCode 和 Notepad++ 无法打开大文件,不参与排名。

另外,也许还有其他更为优秀的工具,比如 Vim 其实也可以用来编辑大文件,小编认知有限,大家可以留言推荐。

10G的变态SQL文件,如何快速打开编辑?的更多相关文章

  1. MySQL(Navicat)运行.sql文件时报错:[Err] 2006 - MySQL server has gone away 的解决方法

    背景: 今天导入一个数据量很大的.sql文件时,报错: 原因: 可能是sql语句过长,超过mysql通信缓存区最大长度. 解决:1. 编辑 MySQL 安装目录下的 my.ini,在最后添加以下内容: ...

  2. 针对大的sql文件删除行操作

    今天处理开发已导出的库的一个sql文件.未gzip压缩 ,1.3G 需要删除 17 18 24行的SET行. 想到了两个办法 1  sed 方法 主意 由于 sed 虽然指定行 进行 替换, 也会读完 ...

  3. mysql导入.sql文件

    1. source /home/susie ...../**.sql 2. \. /home/susie/.../**.sql 批量导入.sql文件 首先新建一个main.sql,然后在main.sq ...

  4. navicat如何导入sql文件和导出sql文件

    http://jingyan.baidu.com/article/a65957f4976aad24e67f9b9b.html ************************************* ...

  5. 怎么将oracle的sql文件转换成mysql的sql文件

    怎么将sql文件导入PowerDesigner中的方法(将oracle的sql文件转换成mysql的sql文件)呢? 怎么将xx.sql文件的数据库结构导入powerdesigner 的方法呢? 现讲 ...

  6. navicat导入sql文件

    Hello,大家好.Navicat是我们平时使用较多的一个数据库客户端工具,平时小天我主要是用来连接mysql的,使用的时候还是很方便的. 今天小天我就给大家分享一个Navicat如何导入导出sql文 ...

  7. 【转】linux下使用sqlplus执行包含语句块的sql文件,运行时会不断显示行号,而在plsqldev中能执行

    一.数据库:Oracle数据库 二.sql文件内容: --创建函数 CREATE OR REPLACE function fun_createuid1 return varchar2 is Resul ...

  8. 大型SQL文件导入mysql方案

    一. 场景 现有俩个体积较大的单表sql文件,一个为8G,一个为4G,要在一天内完整导入到阿里云的mysql中,需要同时蛮子时间和空间这俩种要求. 二. 思路 搜索了网上一堆的方案,总结了如下几个: ...

  9. linux crontab定时任务运行shell脚本(shell执行sql文件)

    https://www.cnblogs.com/tiankongjava/p/6106743.html 今天做个linux定时任务(每晚12点把表汇总). 顺便写个博客记录一下~~ 为什么用linux ...

随机推荐

  1. [原创]wireshark&xterm安装、配置和使用

    --wireshark && xterm--一.安装wireshark: #apt-get install wireshark二.启动wireshark: #wireshark 或者 ...

  2. 程序员到sql笔记

    1最近准备面试,总结一下之前学过到东西.

  3. 图像识别sift+bow+svm

    本文概述 利用SIFT特征进行简单的花朵识别 SIFT算法的特点有: SIFT特征是图像的局部特征,其对旋转.尺度缩放.亮度变化保持不变性,对视角变化.仿射变换.噪声也保持一定程度的稳定性: SIFT ...

  4. E11000 duplicate key error index

    E11000 duplicate key error index mongodb插入报错,重复主键问题,有唯一键值重复 一般使用collection.insertOne(doc);插入一条已存在主键的 ...

  5. Python开发:NumPy学习(一)ndarray数组

    一.数据维度 一个数据表达一个含义,一组数据表达一个或多个含义. 数据维度概念:一组数据的组织形式,其中有一维数据.二维数据.多维数据.高维数据. 1.  一维数据 一维数据由对等关系的有序或无序数据 ...

  6. C#2.0增功能04 可以为 null 的类型

    连载目录    [已更新最新开发文章,点击查看详细] 可以为 null 的类型是 System.Nullable<T> 结构的实例. 可以为 null 的类型可表示一个基础类型的所有值 T ...

  7. cve-2018-14515复现

    一.环境 Windows NT WIN-RRI9T9SN85D 6.1 build 7600 (Windows 7 Business Edition) i586 Apache/2.4.23 (Win3 ...

  8. Python之父新发文,将替换现有解析器

    花下猫语: Guido van Rossum 是 Python 的创造者,虽然他现在放弃了"终身仁慈独裁者"的职位,但却成为了指导委员会的五位成员之一,其一举一动依然备受瞩目.近日 ...

  9. 计时器(Chronometer)、标签(TabHost)

    计时器(Chronometer) 方法 描述 public Chronometer(Context context)[构造方法] 创建Chronometer对象 public long getBase ...

  10. Charles(Windows/Android)入门使用

    一. 介绍以及下载(windows) Charles是一个HTTP代理/HTTP监视器/反向代理,使开发人员能够查看其机器和Internet之间所有HTTP和SSL/HTTPS流量,这包括请求,响应和 ...