mirror of
				https://github.com/Palm1r/QodeAssist.git
				synced 2025-10-31 00:04:36 -04:00 
			
		
		
		
	Add performance benchmark
This commit is contained in:
		| @ -69,6 +69,8 @@ void LLMClientInterface::sendData(const QByteArray &data) | ||||
|     } else if (method == "textDocument/didOpen") { | ||||
|         handleTextDocumentDidOpen(request); | ||||
|     } else if (method == "getCompletionsCycling") { | ||||
|         QString requestId = request["id"].toString(); | ||||
|         startTimeMeasurement(requestId); | ||||
|         handleCompletion(request); | ||||
|     } else if (method == "$/cancelRequest") { | ||||
|         handleCancelRequest(request); | ||||
| @ -316,6 +318,8 @@ void LLMClientInterface::sendCompletionToClient(const QString &completion, | ||||
|     logMessage(QString("Full response: \n%1") | ||||
|                    .arg(QString::fromUtf8(QJsonDocument(response).toJson(QJsonDocument::Indented)))); | ||||
|  | ||||
|     QString requestId = request["id"].toString(); | ||||
|     endTimeMeasurement(requestId); | ||||
|     emit messageReceived(LanguageServerProtocol::JsonRpcMessage(response)); | ||||
| } | ||||
|  | ||||
| @ -381,6 +385,29 @@ QString LLMClientInterface::removeStopWords(const QString &completion) | ||||
|     return filteredCompletion; | ||||
| } | ||||
|  | ||||
| void LLMClientInterface::startTimeMeasurement(const QString &requestId) | ||||
| { | ||||
|     m_requestStartTimes[requestId] = QDateTime::currentMSecsSinceEpoch(); | ||||
| } | ||||
|  | ||||
| void LLMClientInterface::endTimeMeasurement(const QString &requestId) | ||||
| { | ||||
|     if (m_requestStartTimes.contains(requestId)) { | ||||
|         qint64 startTime = m_requestStartTimes[requestId]; | ||||
|         qint64 endTime = QDateTime::currentMSecsSinceEpoch(); | ||||
|         qint64 totalTime = endTime - startTime; | ||||
|         logPerformance(requestId, "TotalCompletionTime", totalTime); | ||||
|         m_requestStartTimes.remove(requestId); | ||||
|     } | ||||
| } | ||||
|  | ||||
| void LLMClientInterface::logPerformance(const QString &requestId, | ||||
|                                         const QString &operation, | ||||
|                                         qint64 elapsedMs) | ||||
| { | ||||
|     logMessage(QString("Performance: %1 %2 took %3 ms").arg(requestId, operation).arg(elapsedMs)); | ||||
| } | ||||
|  | ||||
| void LLMClientInterface::parseCurrentMessage() {} | ||||
|  | ||||
| } // namespace QodeAssist | ||||
|  | ||||
| @ -81,6 +81,13 @@ private: | ||||
|     QNetworkAccessManager *m_manager; | ||||
|     QMap<QString, QNetworkReply *> m_activeRequests; | ||||
|     QMap<QNetworkReply *, QString> m_accumulatedResponses; | ||||
|  | ||||
|     QElapsedTimer m_completionTimer; | ||||
|     QMap<QString, qint64> m_requestStartTimes; | ||||
|  | ||||
|     void startTimeMeasurement(const QString &requestId); | ||||
|     void endTimeMeasurement(const QString &requestId); | ||||
|     void logPerformance(const QString &requestId, const QString &operation, qint64 elapsedMs); | ||||
| }; | ||||
|  | ||||
| } // namespace QodeAssist | ||||
|  | ||||
		Reference in New Issue
	
	Block a user