----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/22776/#review46213 -----------------------------------------------------------
Hi Andrew Thanks again for your contributions! I am going over your patch now, but it looks like there's a compilation issue: compile: [echo] Compiling box [javac] Compiling 338 source files to /Users/vega/wave/build/src [javac] /Users/vega/wave/src/org/waveprotocol/box/server/rpc/ServerRpcProvider.java:56: error: cannot find symbol [javac] import org.eclipse.jetty.server.nio.SelectChannelConnector; [javac] ^ [javac] symbol: class SelectChannelConnector [javac] location: package org.eclipse.jetty.server.nio [javac] Note: Some input files use or override a deprecated API. [javac] Note: Recompile with -Xlint:deprecation for details. [javac] 1 error - Yuri Zelikov On June 19, 2014, 1:27 p.m., Andrew Kaplanov wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/22776/ > ----------------------------------------------------------- > > (Updated June 19, 2014, 1:27 p.m.) > > > Review request for wave and Yuri Zelikov. > > > Repository: wave > > > Description > ------- > > Wiab profiling. > > The basis of profiling code was taken from the Splash project > (https://code.google.com/p/google-wave-splash/). > > Features appended to Splash profiling code: > 1. Current authentification session context. > 2. Cross-thread profiling (one request is executed in several threads > simultaneously). > 3. Client-side profiling. > 4. GWT profiling. > 5. Loading of scope through static object (instead of custom Guice scope). > 6. Profiling popup dialog. > > Server code changes: > 1. Used only own-designed RequestScopeExecutor and > ScheduledRequestScopeExecutor, transferring profiling context to the executed > task. > 2. Profiling context is set in following places: > - RequestScopeFilter - for Servlet requests > - WebSocketChannel - for WebSocket requests > > Client code changes: > 1. Added GWT profiling: > - Added handling of event.__gwtStatsEvent > - Added own listener, as defined in > https://code.google.com/p/gwt-debug-panel/wiki/GettingStarted. > 2. Used only own-designed custom executor BrowserBackedScheduler, > transferring profiling context to the executed task. > 3. Profiling context is set in following places: > - Keyboard events - FocusManager.dispatch > - Mouse events - EventDispatcherPanel.ChangeHandlers.dispatch > - Client RPC requests - RemoteWaveViewService > > Statistics recorded on the server: > 1. Accumulated statistics for task calls for current session and whole > program: > - Methods of objects, created by Guice Inject, and annotated as @Timed. > - Code from Timing.start() or Timing.startRequest() to Timer.stop(). > 2. Statistics for last 100 requests with execution tree for current session > and whole program: > - Code from Timing.startRequest() to Timer.stop(). > 3. Statistics for static fields, annotated as @Stat. > > Statistics recorded on the client: > 1. Accumulated statistics for task calls: > - Code from Timing.start() or Timing.startRequest() to Timer.stop(). > 2. Statistics for last 100 requests with execution tree: > - Code from Timing.startRequest() to Timer.stop(). > > How to display statistics: > 1. In order to show profiling dialog in the client, press and release > one-by-one Ctrl, Alt and Ctrl keys. > 2. To show only server statistics go to URL <wave_server_url>/speedz. > > > Diffs > ----- > > README.profiling PRE-CREATION > build.xml 83b2040 > server-config.xml 4f1d94f > src/org/waveprotocol/box/server/CoreSettings.java 5b3fd0c > src/org/waveprotocol/box/server/ServerMain.java 31b6d8c > src/org/waveprotocol/box/server/ServerModule.java 029f40f > src/org/waveprotocol/box/server/StatModule.java PRE-CREATION > src/org/waveprotocol/box/server/authentication/SessionManager.java 097fd28 > src/org/waveprotocol/box/server/executor/ExecutorAnnotations.java > PRE-CREATION > src/org/waveprotocol/box/server/executor/ExecutorsModule.java PRE-CREATION > src/org/waveprotocol/box/server/executor/RequestScopeExecutor.java > PRE-CREATION > src/org/waveprotocol/box/server/executor/ScheduledRequestScopeExecutor.java > PRE-CREATION > src/org/waveprotocol/box/server/gxp/WaveClientPage.gxp a27f35f > src/org/waveprotocol/box/server/persistence/file/FileDeltaStore.java > 46b00bf > src/org/waveprotocol/box/server/rpc/SearchServlet.java 89c0f42 > src/org/waveprotocol/box/server/rpc/ServerRpcProvider.java 6332174 > src/org/waveprotocol/box/server/rpc/WebSocketChannel.java a7d2579 > src/org/waveprotocol/box/server/stat/MultiThreadedRequestScope.java > PRE-CREATION > src/org/waveprotocol/box/server/stat/RequestScopeFilter.java PRE-CREATION > src/org/waveprotocol/box/server/stat/StatuszServlet.java PRE-CREATION > src/org/waveprotocol/box/server/stat/TimingFilter.java PRE-CREATION > src/org/waveprotocol/box/server/stat/TimingInterceptor.java PRE-CREATION > src/org/waveprotocol/box/server/waveserver/LookupExecutor.java 07479a5 > > src/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewHandlerImpl.java > effb5b5 > src/org/waveprotocol/box/server/waveserver/WaveMap.java d9e01c6 > src/org/waveprotocol/box/server/waveserver/WaveServerImpl.java ecfbbb3 > src/org/waveprotocol/box/server/waveserver/WaveServerModule.java e26dcfc > src/org/waveprotocol/box/stat/AsyncCallContext.java PRE-CREATION > src/org/waveprotocol/box/stat/ExecutionNode.java PRE-CREATION > src/org/waveprotocol/box/stat/ExecutionTree.java PRE-CREATION > src/org/waveprotocol/box/stat/Measurement.java PRE-CREATION > src/org/waveprotocol/box/stat/RequestScope.java PRE-CREATION > src/org/waveprotocol/box/stat/SessionContext.java PRE-CREATION > src/org/waveprotocol/box/stat/SingleThreadedRequestScope.java PRE-CREATION > src/org/waveprotocol/box/stat/Stat.gwt.xml PRE-CREATION > src/org/waveprotocol/box/stat/Stat.java PRE-CREATION > src/org/waveprotocol/box/stat/StatRecorder.java PRE-CREATION > src/org/waveprotocol/box/stat/StatRenderer.java PRE-CREATION > src/org/waveprotocol/box/stat/StatService.java PRE-CREATION > src/org/waveprotocol/box/stat/StatStore.java PRE-CREATION > src/org/waveprotocol/box/stat/Statistic.java PRE-CREATION > src/org/waveprotocol/box/stat/Timed.java PRE-CREATION > src/org/waveprotocol/box/stat/Timer.java PRE-CREATION > src/org/waveprotocol/box/stat/Timing.java PRE-CREATION > src/org/waveprotocol/box/stat/TimingReceiver.java PRE-CREATION > src/org/waveprotocol/box/webclient/WebClient.gwt.xml 63516ac > src/org/waveprotocol/box/webclient/WebClientProd.gwt.xml 6c6e8d5 > src/org/waveprotocol/box/webclient/client/RemoteWaveViewService.java > 923c481 > src/org/waveprotocol/box/webclient/client/WaveWebSocketClient.java 92e3fd8 > src/org/waveprotocol/box/webclient/client/WebClient.java c012ee6 > src/org/waveprotocol/box/webclient/stat/Stat.gwt.xml PRE-CREATION > src/org/waveprotocol/box/webclient/stat/dialog/StatDialog.java PRE-CREATION > src/org/waveprotocol/box/webclient/stat/gwtevent/GwtStatisticsEvent.java > PRE-CREATION > > src/org/waveprotocol/box/webclient/stat/gwtevent/GwtStatisticsEventDispatcher.java > PRE-CREATION > > src/org/waveprotocol/box/webclient/stat/gwtevent/GwtStatisticsEventSystem.java > PRE-CREATION > src/org/waveprotocol/box/webclient/stat/gwtevent/GwtStatisticsHandler.java > PRE-CREATION > src/org/waveprotocol/box/webclient/stat/gwtevent/StatisticsEvent.java > PRE-CREATION > > src/org/waveprotocol/box/webclient/stat/gwtevent/StatisticsEventDispatcher.java > PRE-CREATION > > src/org/waveprotocol/box/webclient/stat/gwtevent/StatisticsEventListener.java > PRE-CREATION > src/org/waveprotocol/box/webclient/stat/gwtevent/StatisticsEventSystem.java > PRE-CREATION > src/org/waveprotocol/wave/client/Stages.java 52ade26 > src/org/waveprotocol/wave/client/scheduler/BrowserBackedScheduler.java > 6cc57e6 > src/org/waveprotocol/wave/client/scheduler/TaskInfo.java 23c3f97 > src/org/waveprotocol/wave/client/wavepanel/event/EventDispatcherPanel.java > cb0822a > src/org/waveprotocol/wave/client/wavepanel/event/FocusManager.java 461a3ce > > src/org/waveprotocol/wave/client/wavepanel/view/dom/full/WavePanelResourceLoader.java > 2f16cb2 > src/org/waveprotocol/wave/client/widget/dialog/Dialog.css PRE-CREATION > src/org/waveprotocol/wave/client/widget/dialog/Dialog.gwt.xml PRE-CREATION > src/org/waveprotocol/wave/client/widget/dialog/Dialog.java PRE-CREATION > src/org/waveprotocol/wave/client/widget/dialog/DialogBox.java PRE-CREATION > test/org/waveprotocol/box/server/rpc/RpcTest.java 689d5c6 > > test/org/waveprotocol/box/server/waveserver/LucenePerUserWaveViewProviderTest.java > b4d02e4 > > Diff: https://reviews.apache.org/r/22776/diff/ > > > Testing > ------- > > > Thanks, > > Andrew Kaplanov > >