diff --git a/CustomModels/emojismodel.cpp b/CustomModels/emojismodel.cpp
index d97ff7d0e62eddbcdce6b11695116aa797d5d057..520afdda884b233075bad04977fd018d62b9f5a9 100644
--- a/CustomModels/emojismodel.cpp
+++ b/CustomModels/emojismodel.cpp
@@ -2,7 +2,7 @@
 
 EmojisModel::EmojisModel()
 {
-
+    mDuplicateCheck.reserve( 2000 );
 }
 
 int EmojisModel::rowCount( const QModelIndex &parent ) const
@@ -97,9 +97,10 @@ void EmojisModel::addEmojisByCategory( const QString &pCategory, const QList<QSh
 
     if ( !mData.contains( pCategory ) ) {
         mData.insert( pCategory, QList<QSharedPointer<Emoji>>() );
+        mData[pCategory].reserve( 600 );
     }
 
-    for ( auto element : pList ) {
+    for ( const auto &element : pList ) {
         if ( !mDuplicateCheck.contains( element->getIdentifier() ) ) {
             mData[pCategory].append( element );
             mDuplicateCheck.insert( element->getIdentifier() );
diff --git a/CustomModels/messagemodel.cpp b/CustomModels/messagemodel.cpp
index 9e034dc7c202080bb2ca6fb5e11c40791b6c65af..36aa0520958f67ea31d580f415923b3b27028d56 100644
--- a/CustomModels/messagemodel.cpp
+++ b/CustomModels/messagemodel.cpp
@@ -26,7 +26,7 @@
 
 MessagesModel::MessagesModel()
 {
-
+    duplicateCheck.reserve( 10000 );
 }
 
 QVariant MessagesModel::data( const QModelIndex &index, int role ) const