issues
search
Jazea
/
Onvif.Core
A lightweight ONVIF Discovery and Client library.
MIT License
71
stars
26
forks
source link
Patches
#13
Closed
differentrain
closed
4 months ago
differentrain
commented
11 months ago
add IDisposable interface to IUdpClient
Udp客户端必定需要socket资源,这意味着它的正确实施必定要实现IDisposable接口。增加此接口可以保证按期望释放非托管资源。
allow unsafe code
增加unsafe惠而不费。
fix equals method; change hash algorithm to fnv-1
注1: 即便Object重写了Equals方法,
==
运算符仍然会对比实例是否是同一引用。所以对比Address时要显式使用Equals方法。同时,原有实现浪费了性能,这里采取更好的方式实现。 注2: GetHashcode可以用FNV-1算法计算。性能高,且离散性好。
precompile regex
预编译正则表达式。
add ConfigureAwait(false) to improve performance
详见
add library
引用的库都是现有库依赖的,直接传递,没有引入额外的库。
improve performance of PasswordDigest method
优化点1:缓冲区池 优化点2: Unsafe拷贝数组 优化点3: Encoding.ASCII.GetBytes直接写入缓冲区 其他:正确释放实现了IDisposable接口的对象。
==
运算符仍然会对比实例是否是同一引用。所以对比Address时要显式使用Equals方法。同时,原有实现浪费了性能,这里采取更好的方式实现。 注2: GetHashcode可以用FNV-1算法计算。性能高,且离散性好。