50 MB짜리 인코딩하는데 20초 정도 걸리는데
디코딩은 2초안에됨
일단 정상적으로 된다는 면에선 만족하는데 인코딩 속도가 왜이리 느린지 모르겠다.
Append함수는
void Append(wchar_t ch)
{
__Ensure();
if (m_length == capacity - 1)
__Expand();
m_ptr[m_length++] = ch;
}
void __Ensure()
{
if (m_ptr == nullptr)
{
m_ptr = new wchar_t[capacity];
}
}
bool __Expand()
{
if (m_length > 0)
{
__LinkTo();
return true;
}
return false;
}
void __LinkTo()
{
m_top = false;
m_prev = new WStringBuilder(*this);
m_offset += m_length;
m_ptr = nullptr;
m_length = 0;
m_top = true;
m_nodispose = false;
}
WStringBuilder(WStringBuilder& th)
{
m_offset = th.m_offset;
m_length = th.m_length;
m_ptr = th.m_ptr;
m_prev = th.m_prev;
m_nodispose = th.m_nodispose;
}
이 구조임
댓글 0