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;

}


이 구조임