小编Pat*_*sen的帖子

为什么base64编码的数据压缩如此糟糕?

我最近压缩了一些文件,我注意到base64编码的数据似乎压缩得非常糟糕.这是一个例子:

  • 原始档案:429,7 MiB
  • 压缩通过xz -9:
    13,2 MiB / 429,7 MiB = 0,031 4,9 MiB/s 1:28
  • base64它并压缩通过xz -9:
    26,7 MiB / 580,4 MiB = 0,046 2,6 MiB/s 3:47
  • base64原始压缩的xz文件:
    17,8 MiB几乎没有时间=预期1.33x的大小增加

所以可以观察到的是:

  • xz压缩真的很好☺
  • base64编码的数据压缩不好,比未编码的压缩文件大2倍
  • base64-then-compresscompress-then-base64明显更差,更慢

怎么会这样?Base64是一种无损,可逆的算法,为什么它会如此影响压缩呢?(我也试过gzip,结果相似).

我知道base64然后压缩文件是没有意义的,但大多数时候一个人无法控制输入文件,我会想到,因为实际的信息密度(或任何它被称为base64编码文件的几乎与非编码版本相同,因此可以类似地压缩.

compression lossless-compression

45
推荐指数
2
解决办法
3万
查看次数

如何在没有"偷看"的情况下找到所有参考文献?

我希望在底部停靠窗口中看到所有引用(类似于"问题"窗口的显示方式).我试图找到对函数的所有引用,以便我可以跳转到我正在使用该函数的每个地方并进行更改.目前的"偷看"功能使得这非常不方便.例如:

首先,我找到了所有参考文献 getStartDate 在此输入图像描述

将出现内联"peek"窗口,并向我显示当前文件中的引用以及其他文件.我点击另一个参考: 在此输入图像描述

编辑器导航到该文件并将文件分成两半,以显示我正在编辑的文件.请告诉我有一种方法可以将此窗口停靠在屏幕底部.或者更好的是,有一个"完整"找到所有引用而不是"偷看"找到所有引用.

visual-studio-code

9
推荐指数
1
解决办法
3700
查看次数

Git rebase 尝试对目标提交之前发生的提交进行 rebase

我跑了git rebase -i <target hash>。进行更改后,我跑了git rebase --continue。Git 然后正确地重新调整了 15 次提交中的 15 次。成功执行此操作后,我收到此错误:

error: could not apply <bad hash>... <commit message>

When you have resolved this problem, run "git rebase --continue".
If you prefer to skip this patch, run "git rebase --skip" instead.
To check out the original branch and stop rebasing, run "git rebase --abort".
Could not apply <bad hash>... <commit message>
Run Code Online (Sandbox Code Playgroud)

我检查了与提交相关的内容bad hash。我发现这个提交发生在大约 3 个月之前target hash。那么为什么 git rebase 甚至会触及这个提交呢?我认为 rebase 只针对从当前提交到 …

git

0
推荐指数
1
解决办法
146
查看次数