mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-03 21:43:21 +00:00 
			
		
		
		
	profiling: Use mkstemp for profile.data filename.
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							601b5eb036
						
					
				
				
					commit
					79d888223f
				
			@@ -5,8 +5,10 @@ from mypy_extensions import NoReturn
 | 
			
		||||
import glob
 | 
			
		||||
import argparse
 | 
			
		||||
import os
 | 
			
		||||
import shlex
 | 
			
		||||
import sys
 | 
			
		||||
import subprocess
 | 
			
		||||
import tempfile
 | 
			
		||||
import ujson
 | 
			
		||||
import httplib2
 | 
			
		||||
import httpretty
 | 
			
		||||
@@ -441,12 +443,13 @@ if __name__ == "__main__":
 | 
			
		||||
            failures = True
 | 
			
		||||
    if options.profile:
 | 
			
		||||
        prof.disable()
 | 
			
		||||
        prof.dump_stats("/tmp/profile.data")
 | 
			
		||||
        print("Profile data saved to /tmp/profile.data")
 | 
			
		||||
        print("You can visualize it using e.g. `snakeviz /tmp/profile.data`")
 | 
			
		||||
        with tempfile.NamedTemporaryFile(prefix='profile.data.', delete=False) as stats_file:
 | 
			
		||||
            prof.dump_stats(stats_file.name)
 | 
			
		||||
            print("Profile data saved to {}".format(stats_file.name))
 | 
			
		||||
            print("You can visualize it using e.g. `snakeviz {}`".format(shlex.quote(stats_file.name)))
 | 
			
		||||
            print("Note: If you are using vagrant for development environment you will need to do:")
 | 
			
		||||
            print("1.) `vagrant ssh -- -L 8080:127.0.0.1:8080`")
 | 
			
		||||
        print("2.) `snakeviz -s /tmp/profile.data`")
 | 
			
		||||
            print("2.) `snakeviz -s {}`".format(shlex.quote(stats_file.name)))
 | 
			
		||||
 | 
			
		||||
    if options.report_slow_tests:
 | 
			
		||||
        from zerver.lib.test_runner import report_slow_tests
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,6 @@
 | 
			
		||||
import cProfile
 | 
			
		||||
import logging
 | 
			
		||||
import tempfile
 | 
			
		||||
from typing import Any, Dict
 | 
			
		||||
 | 
			
		||||
from django.core.management.base import CommandParser
 | 
			
		||||
@@ -41,9 +42,10 @@ def profile_request(request: HttpRequest) -> HttpResponse:
 | 
			
		||||
    ret = get_messages_backend(request, request.user,
 | 
			
		||||
                               apply_markdown=True)
 | 
			
		||||
    prof.disable()
 | 
			
		||||
    prof.dump_stats("/tmp/profile.data")
 | 
			
		||||
    with tempfile.NamedTemporaryFile(prefix='profile.data.', delete=False) as stats_file:
 | 
			
		||||
        prof.dump_stats(stats_file.name)
 | 
			
		||||
        request_logger.process_response(request, ret)
 | 
			
		||||
    logging.info("Profiling data written to /tmp/profile.data")
 | 
			
		||||
        logging.info("Profiling data written to {}".format(stats_file.name))
 | 
			
		||||
    return ret
 | 
			
		||||
 | 
			
		||||
class Command(ZulipBaseCommand):
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user