×
提示:
×
提示:
请:
谢谢!
Toggle navigation
技术头条
最新
读点非技术
我也分享
赞过
我的
IT技术博客大学习
微博登录
1
平均节省流量 30% ,这项视频云处理技术是如何实现的?
(tech.upyun.com)
【简介】
窄带高清,从视频技术本质上来说,主要依靠的是码率控制。码率控制分两个优化方向:第一,在相同的码率下,尽可能的提高视频质量;第二,在主观质量不损失的情况下,尽可能的降低视频码率。
点击查看原文 >>
由
@Jerry轩5211
2018-03-19 17:14 / 0个评论
赞过的人:
@Jerry轩5211
要不要再学学下面的文章?
0
聊聊 Go 的边界检查消除技术
(colobu.com)
在翻译的从慢速到SIMD一文中, SourceGraph工程师其中的一个优化就是边界检查消除(BCE,bounds check elimination)技术,同时他也抛给了读者一个问题:
为啥在使用 a[i:i+4:i+4] 而不是 a[i:i+4]?
本文第一部分先回答这个问题。 第二部分介绍更好的边界检查消除方法。 第三部分再全面梳理Go的边界检查消除技术。
by
@技术头条
2024-03-21 23:00
查看详情
0
Go 中的高速数据包处理:从 net.Dial 到 AF_XDP
(colobu.com)
最近编写了一个Go程序,向数百万个IP地址发送ICMP ping消息。显然,希望这个过程能尽可能快速高效地完成。因此,这促使我研究各种与网络栈交互和快速发送数据包的各种方法。这是一个有趣的旅程,所以在本文中,我将分享一些学习成果,并记录下来供将来参考:)你将看到,仅使用8个内核就可以达到1880万数据包/秒。这里还有一个GitHub仓库,其中包含了示例代码,可以方便地跟随学习。
by
@技术头条
2024-03-21 22:55
查看详情
0
重复视频检测的价值和常见方法
(ixyzero.com)
全网范围内的主要精品视频主要来自MCN机构,一些公司为了更快更好地去覆盖全网内容,会选择和内容代理合作,而代理手上会有很多重复版权的内容,导致重复内容出现。另外,搬运视频也会导致重复内容出现,这些重复内容会造成极差的用户体验。
再者,大量内容相似的视频对于短视频平台存储、网络带宽等资源也是一个极大的挑战,为了不必要的资源浪费,对视频内容进行去重是非常有必要的。
by
@技术头条
2024-03-13 13:24
查看详情
0
为 log 实现的无锁 Ringbuffer
(blog.codingnow.com)
这两天在改 log 模块。我们需要一个并发写 log 的模块,它有多个 log 生产者一个消费者,这个唯一的消费者在 log 线程中把 log 数据持久化。
大多数 log 生产者是在第三方库的 callback 函数中调用的,比如 bgfx ,如果写 log 不够快的话,就会阻塞渲染。这个 callback 需要自己保证线程安全。因为 bgfx 支持多线程渲染,所以写 log 的 callback 可能在不同的线程触发。
过去在实现 bgfx 的 luabinding 时,我实现了一个简单的 mpsc 队列,get_log 这个函数就是那个单一消费者,它取出队列中所有的 log 信息,返回到 lua 虚拟机中。
它是用 spin_lock 实现的。这两天,我想应该可以实现一个更通用的无锁版本。
在我的需求中,log 信息是允许丢掉的。所以我开了一个固定大小的 ri
by
@技术头条
2024-03-12 22:45
查看详情
0
解析Java动态代理机制的实现
(l1n.wang)
代理模式主要是Proxy对原始方法做了一层包装,用以增加一些新的统一处理逻辑,来增强目标对象的功能。静态代理是传统设计模式中一种传统的实现方案,动态代理能将代理对象的创建延迟到程序运行阶段。
by
@技术头条
2024-01-17 23:16
查看详情
0
golang uretprobe的崩溃与模拟实现
(www.cnxct.com)
Go程序崩溃的核心原因为Go的栈在runtime管理时,被插入了异常的内存地址。Go中常见的堆栈变化为协程goroutine的创建与销毁。栈内 被插入异常内存地址是因为eBPF的实现机制是向函数的返回地址前,插入了断点指令(i386和x86_64是INT3)。 两个条件的叠加,就出现了这个错误。
by
@技术头条
2024-01-17 23:12
查看详情
0
高效I/O并发处理:双缓冲和Exchanger
(colobu.com)
双缓冲(double buffering)是高效处理I/O操作的一种并发技术,它使用两个buffer,一个goroutine使用其中一个buffer进行写,而另一个goroutine使用另一个buffer进行读,然后进行交换。这样两个goroutine可能并发的执行,减少它们之间的等待和阻塞。
本文还提供了一个类似Java的java.util.concurrent.Exchanger的Go并发原语,它可以用来在两个goroutine之间交换数据,快速实现双缓冲的模式。 这个并发原语可以在github.com/smallnest/exp/sync/Exchanger找到。
by
@技术头条
2024-01-17 23:05
查看详情
0
如何实现 GC 的高吞吐量?
(www.diguage.com)
在本篇文章中,我们将探讨垃圾回收过程中的一个关键性能指标:"GC 吞吐量"。我们将了解它的含义、在 Java 应用程序中的重要性以及它对整体性能的影响。此外,我们还将深入探讨提高 GC 吞吐量的可行策略,为现代软件开发释放其优势。
by
@技术头条
2024-01-13 23:50
查看详情
0
利用gorm自身提供的方法实现存在更新不存在则创建的能力
(wiki.eryajf.net)
MySQL 有一个语句是 UPSERT 的操作,它结合了 update 和 insert 两种操作的功能。当执行 upsert 操作时,如果指定的记录已经存在,则执行更新操作;如果指定的记录不存在,则执行插入操作。这种操作可以用来确保数据的一致性,并且可以减少对数据库的访问次数。
by
@技术头条
2024-01-13 23:49
查看详情
0
用 rspamd 来实现反垃圾邮件
(blog.delphij.net)
在过去二十年中的大部分时间,我采用的是 amavisd-new,与直接使用 SpamAssassin 相比,它还增加了病毒扫描等一系列功能和 milter接口,这让它与 MTA 更容易集成。
最近我发现 FreeBSD.org 把反垃圾系统替换成了 rspamd,所以在11月初把我的邮件系统也换成了 rspamd,经过两个月的使用,总体的感觉是「我tm早干嘛去了」。
by
@技术头条
2024-01-13 23:34
查看详情
使用微博登录,分享你的文章到本站
评论:
提交评论
近一周被赞排行
分享文章被赞得多,您就会出现在上面。还能给您微博带来新粉丝哦!