andreas-mausch / whatsapp-viewer

Small tool to display chats from the Android msgstore.db database (crypt12)
https://andreas-mausch.de/whatsapp-viewer/
MIT License
1.23k stars 381 forks source link

Reverse loop over messages to find quoted message. Improves performance as quoted messages will be near the current message (end of the messages iterator). #147

Open nielsderdaele opened 2 years ago

nielsderdaele commented 2 years ago

Opening a large chat (250k+ messages) takes a long time. One of reasons for this is the loop which tries to find a quoted message. This loop starts from the beginning of the messages and loops to the end. Almost always one will quote a recent message (near the end of the messages vector). I changed findMessageById method to findMessageByIdReverse so it runs from the end of the vector to the front. This greatly improves performance as the quoted messages is often found in a couple of iterations.