Я пишу что-то типа продвинутого текстового редактора, мне нужно выделять некоторые слова и предложения особым цветом.
Программа хранит слова как отдельные объекты, а потом из них генерирует текст, однако затраты на вызов textCursor.insertText для каждого слова очень накладны для процессора, по непонятной причине. Написал пример, на котором очевидно, что вызов insertText 1000 раз с маленьким текстом будет в 10 раз дольше, чем вызов его же 100 раз с текстом, в 10 раз большим. Хотя итог одинаковый...
void insertTextExample(){
  QTextEdit* pTextEdit1 =  new QTextEdit();
  QTextCursor textCursor = pTextEdit1->textCursor();
  int i;
 
  QTime timeInsertText; timeInsertText.start();
  for(i=0;i<1000;i++){
	textCursor.insertText("Text");
  }
  qDebug() << "Time insert small text x1000 = " << timeInsertText.elapsed();
  
  pTextEdit1->clear();
  
  QTime timeInsertText2; timeInsertText2.start();
  for(i=0;i<100;i++){
	textCursor.insertText("TextTextTextTextTextTextTextTextTextText");
  }
  qDebug() << "Time insert big text x100 = " << timeInsertText2.elapsed();
  
  pTextEdit1->show();
}
int main(int argc, char* argv[]){
  QApplication app(argc, argv);
  insertTextExample();
  return app.exec();
}Вывод-
Time insert small text x1000 =  60
Time insert big text x100 =  6