summaryrefslogtreecommitdiffstats
path: root/MCServer/profile_run.cmd
diff options
context:
space:
mode:
Diffstat (limited to 'MCServer/profile_run.cmd')
-rw-r--r--MCServer/profile_run.cmd96
1 files changed, 96 insertions, 0 deletions
diff --git a/MCServer/profile_run.cmd b/MCServer/profile_run.cmd
new file mode 100644
index 000000000..58efea64a
--- /dev/null
+++ b/MCServer/profile_run.cmd
@@ -0,0 +1,96 @@
+@echo off
+::
+:: Profiling using a MSVC standalone profiler
+::
+:: See http://www.codeproject.com/Articles/144643/Profiling-of-C-Applications-in-Visual-Studio-for-F for details
+:: Note that this script assumes a newer version of the tool, Performance Tools 2010, so that it is Win7-compatible
+:: Download at http://www.microsoft.com/en-ca/download/details.aspx?id=23205
+::
+:: This script sets the profiler up, then starts the app, waits for it to finish and stops the profiler.
+:: Then it generates all the CSV report files
+::
+:: It expects the MS Performance tools installed in C:\Program Files\Microsoft Visual Studio 9.0\Team Tools\Performance Tools
+:: You can override this path by setting the pt environment variable prior to launching this script
+::
+:: By default it will launch the release version of MCServer; set the app environment variable to another executable to run that instead.
+:: Note that the app needs to be compiled with the "/PROFILE" flag in order for the profiling to work
+
+
+
+
+setlocal
+
+:: Get the 32-bit program files folder
+:: Note that in Win7 the %ProgramFiles% variable points to 32-bit program files for normal users and to 64-bit program files for elevated users
+:: This script needs elevation, but the performance tools are 32-bit only
+if "%programfiles(x86)%p" == "p" (
+ set ProgFiles="%ProgramFiles%"
+) else (
+ set ProgFiles="%ProgramFiles(x86)%"
+)
+
+:: Check that the required variables exist, provide defaults:
+if %pt%n == n (
+ set pt="%ProgFiles:"=%\Microsoft Visual Studio 10.0\Team Tools\Performance Tools"
+)
+
+if %app%n == n (
+ set app=MCServer_profile.exe
+)
+
+if %outputdir%n == n (
+ set outputdir=..\Profiling
+)
+
+
+
+
+::Create the output directory, if it didn't exist
+mkdir %outputdir%
+
+
+
+
+
+:: Start the profiler
+set outputname=profile.vsp
+set output=%outputdir%\%outputname%
+%pt%\vsperfcmd /start:sample /output:%output%
+if errorlevel 1 goto haderror
+
+:: Launch the application via the profiler
+%pt%\vsperfcmd /launch:%app%
+if errorlevel 1 goto haderror
+
+:: Shut down the profiler (this command waits, until the application is terminated)
+%pt%\vsperfcmd /shutdown
+if errorlevel 1 goto haderror
+
+
+
+
+
+:: cd to outputdir, so that the reports are generated there
+cd %outputdir%
+
+:: generate the report files (.csv)
+%pt%\vsperfreport /summary:all %outputname% /symbolpath:"srv*C:\Programovani\Symbols*http://msdl.microsoft.com/download/symbols"
+if errorlevel 1 goto haderror
+
+
+
+
+
+goto finished
+
+
+
+
+:haderror
+echo An error was encountered
+pause
+
+
+
+
+:finished