因为qt5做了改进,那时用的是qt4
https://code.woboq.org/kde/include/qt4/QtCore/qbytearray.h.html
inline QByteArray::QByteArray(): d(&shared_null) { d->ref.ref(); }
inline QByteArray::~QByteArray() { if (!d->ref.deref()) qFree(d); }
static Data shared_null;
计数器ref的ref()虽然是原子操作,但是高并发下全局shared_null效率很低
这就是QByteArray()多线程效率低的原因,都在访问shared_null的ref
反倒是QByteArray(const char*)多线程下效率还行,毕竟是不同的ref操作
【 在 DoorWay (DoorWay) 的大作中提到: 】
: 首先,我有50%的概率跟你写的一样;有50%的概率会定义空的ByteArray. 取决于开发时的进度压力,或者当时着重解决的问题.
: [code=c]
: const QByteArray fkEmpty; // 模拟常见的 static const Vec3& Vec::Zero();
: ...................
--
修改:jjfz FROM 111.197.236.182
FROM 111.197.236.182