Performance functiond for POST

merge-requests/30/head
Bob Mottram 2021-10-19 17:58:15 +01:00
parent 04d661289a
commit 4f38fd4e29
1 changed files with 69 additions and 67 deletions

View File

@ -1515,25 +1515,6 @@ class PubServer(BaseHTTPRequestHandler):
'epicyon=; SameSite=Strict',
callingDomain)
def _benchmarkPOSTtimings(self, POSTstartTime, POSTtimings: [],
postID: int, debug: bool) -> None:
"""Updates a list containing how long each segment of POST takes
"""
if debug:
timeDiff = int((time.time() - POSTstartTime) * 1000)
logEvent = False
if timeDiff > 100:
logEvent = True
if POSTtimings:
timeDiff = int(timeDiff - int(POSTtimings[-1]))
POSTtimings.append(str(timeDiff))
if logEvent:
ctr = 1
for timeDiff in POSTtimings:
if debug:
print('POST TIMING|' + str(ctr) + '|' + timeDiff)
ctr += 1
def _loginScreen(self, path: str, callingDomain: str, cookie: str,
baseDir: str, httpPrefix: str,
domain: str, domainFull: str, port: int,
@ -15935,12 +15916,14 @@ class PubServer(BaseHTTPRequestHandler):
def do_POST(self):
POSTstartTime = time.time()
POSTtimings = []
if not self.server.session:
print('Starting new session from POST')
self.server.session = \
createSession(self.server.proxyType)
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'createSession',
self.server.debug)
if not self.server.session:
print('ERROR: POST failed to create session during POST')
self._404()
@ -16029,7 +16012,8 @@ class PubServer(BaseHTTPRequestHandler):
self.outboxAuthenticated = False
self.postToNickname = None
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 1,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'start',
self.server.debug)
# login screen
@ -16042,7 +16026,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 2,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_loginScreen',
self.server.debug)
if authorized and self.path.endswith('/sethashtagcategory'):
@ -16114,7 +16099,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.defaultTimeline)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 3,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_newsPostEdit',
self.server.debug)
usersInPath = False
@ -16135,7 +16121,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 4,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_moderatorActions',
self.server.debug)
searchForEmoji = False
@ -16147,10 +16134,8 @@ class PubServer(BaseHTTPRequestHandler):
print('DEBUG: searching for emoji')
print('authorized: ' + str(authorized))
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 5,
self.server.debug)
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 6,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'searchhandleemoji',
self.server.debug)
# a search was made
@ -16171,7 +16156,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 7,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_receiveSearchQuery',
self.server.debug)
if not authorized:
@ -16222,7 +16208,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 8,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_removeWanted',
self.server.debug)
# removes a post
@ -16245,7 +16232,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 9,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_removePost',
self.server.debug)
# decision to follow in the web interface is confirmed
@ -16262,7 +16250,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 10,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_followConfirm',
self.server.debug)
# decision to unfollow in the web interface is confirmed
@ -16279,7 +16268,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 11,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_unfollowConfirm',
self.server.debug)
# decision to unblock in the web interface is confirmed
@ -16296,7 +16286,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 12,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_unblockConfirm',
self.server.debug)
# decision to block in the web interface is confirmed
@ -16313,7 +16304,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.debug)
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 13,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_blockConfirm',
self.server.debug)
# an option was chosen from person options screen
@ -16401,7 +16393,8 @@ class PubServer(BaseHTTPRequestHandler):
originDomain + ' ' + self.server.domainFull + ' ' +
str(self.server.sharedItemsFederatedDomains))
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 14,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'SharesCatalog',
self.server.debug)
# receive different types of post created by htmlNewPost
@ -16460,7 +16453,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 15,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'receive post',
self.server.debug)
if self.path.endswith('/outbox') or \
@ -16477,7 +16471,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 16,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'authorized',
self.server.debug)
# check that the post is to an expected path
@ -16492,7 +16487,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 17,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'check path',
self.server.debug)
# read the message and convert it into a python dictionary
@ -16565,7 +16561,8 @@ class PubServer(BaseHTTPRequestHandler):
if self.server.debug:
print('DEBUG: Reading message')
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 18,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'check content type',
self.server.debug)
# check content length before reading bytes
@ -16621,7 +16618,8 @@ class PubServer(BaseHTTPRequestHandler):
# convert the raw bytes to json
messageJson = json.loads(messageBytes)
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 19,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'load json',
self.server.debug)
# https://www.w3.org/TR/activitypub/#object-without-create
@ -16643,7 +16641,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 20,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', '_postToOutbox',
self.server.debug)
# check the necessary properties are available
@ -16667,7 +16666,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 21,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'inboxMessageHasParams',
self.server.debug)
headerSignature = self._getheaderSignatureInput()
@ -16682,7 +16682,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 22,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'keyId check',
self.server.debug)
if not self.server.unitTest:
@ -16697,7 +16698,8 @@ class PubServer(BaseHTTPRequestHandler):
self.server.POSTbusy = False
return
self._benchmarkPOSTtimings(POSTstartTime, POSTtimings, 23,
fitnessPerformance(POSTstartTime, self.server.fitness,
'_POST', 'inboxPermittedMessage',
self.server.debug)
if self.server.debug: