工作中,偶尔需要编辑一些大文件,比如 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. Mysql常用增删查改及入门(二)

    常用:数据库常用就是DML:增删查改 1.增加数据: insert into 表名 values (值1,值2...); insert into 表名 (字段1,字段2) values (值1,值2) ...

  2. 从0系统学Android--1.2 手把手带你搭建开发环境

    要想进行程序开发,首先我们需要搭建开发环境,下面就开始搭建环境. 1.2.1 所需的工具 首先 Android 开发是基于 Java 的,因此你需要掌握简单的 Java 语法.会基础的 Java 语法 ...

  3. React躬行记(9)——组件通信

    根据组件之间的嵌套关系(即层级关系)可分为4种通信方式:父子.兄弟.跨级和无级. 一.父子通信 在React中,数据是自顶向下单向流动的,而父组件通过props向子组件传递需要的信息是组件之间最常见的 ...

  4. js的事件冒泡机制

    js的事件冒泡机制呢,就是一个DOM树,一级一级向上冒的过程,最终是到document这个根节点这里.js的事件冒泡机制,就像是一个水泡在水底下,冒泡到水面的过程. 摘自醉清玄

  5. Oracle RAC运维所遇问题记录一

    Oracle11gR2,版本11.2.0.4集群测试环境运行正常 主机名:rac1,rac2 hosts文件: # Public172.17.188.12 rac1172.17.188.13 rac2 ...

  6. 盘一盘 synchronized (一)—— 从打印Java对象头说起

    Java对象头的组成 Java对象的对象头由 mark word 和  klass pointer 两部分组成, mark word存储了同步状态.标识.hashcode.GC状态等等. klass  ...

  7. LeetCode: 3 无重复字符的最长子串 (Java)

    3. 无重复字符的最长子串 https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/ 最初始的解 ...

  8. HPU暑期集训积分赛2

    A. 再战斐波那契 单点时限: 1.0 sec 内存限制: 512 MB 小z 学会了斐波那契和 gcd 后,老师又给他出了个难题,求第N个和第M个斐波那契数的最大公约数,这可难倒了小z ,不过在小z ...

  9. 【MySQL】添加多个字段

    MySQL 遇到了添加多个字段的问题,尝试了几次,搞定了,记录下. 示例代码如下: alter table ad_data add ( exposure_count bigint(20) defaul ...

  10. 实时同步lsyncd

    实时同步lsyncd 1 lsyncd 1.1 lsyncd 简介 Lsyncd使用文件系统事件接口(inotify或fsevents)来监视对本地文件和目录的更改.Lsyncd将这些事件整理几秒钟, ...