m13253/danmaku2ass

麻烦各位帮忙阅读源代码找找可以优化的地方

m13253 opened this issue · 8 comments

今天发现此处可以做一些优化:
71776ba f27f9fe

通过忽略重复的行可以节省约25倍计算量。

既然如此,源代码中可以优化或者有问题的地方应该很多。
如果你们有时间就帮助我找找这些地方吧。

希望不会占用各位太多时间。谢谢。

召唤 @biergaizi @jabbany @Kevin6241

如果你们认为自己被打扰了可以点击左下角的 Mute 按钮关闭邮件通知。

对Python其实不太熟。。。的说。。。

芝加哥度假中。。。尽量吧。

如果我来,肯定会把代码写成我那些项目的样子……

不过我回头会 Benchmark 一下看看的。

如果我来,肯定会把代码写成我那些项目的样子……

你说的是什么意思?有什么可以改进的地方么?

row += freerows or 1

这一行好慢啊,虽然没仔细看逻辑,但是or后面改成5或10就快很多,副作用是行距变大了一点。
理论上能改成以字号为stepsize吗?如果逻辑上可行,我回头尝试改一下
测试了一个刚不到10万弹幕的例子,那个循环跑了3千万次,花了半分钟

这一行好慢啊,虽然没仔细看逻辑,但是or后面改成5或10就快很多,副作用是行距变大了一点。
理论上能改成以字号为stepsize吗?如果逻辑上可行,我回头尝试改一下
测试了一个刚不到10万弹幕的例子,那个循环跑了3千万次,花了半分钟

在弹幕过多的时候,我的算法是寻找密集程度最低的行来插入新的弹幕,但是 B 站官方的算法更简单而且更好:
B 站的做法是直接创建一个新的图层,这个新的图层是空的,把新弹幕插入在新图层里就好了,性能能提升很多,而且观感更好。
但是因为这个项目已经弃置,代码也已腐烂难以维护,我决定不再修这个问题了。
弃置的主要原因是 B 站已经有官方 HTML5 播放器,我没有使用这个软件的需求了。