code: public double getExecutionTime() {
        KernelProfile profile = KernelManager.instance().getProfile(getClass());
        synchronized (profile) {
           return profile.getLastExecutionTime();
        }
     }
docs: Determine the execution time of the previous Kernel.execute(range) called from the last thread that ran and
  executed on the most recently used device.
  <br/>
  <b>Note1: </b>This is kept for backwards compatibility only, usage of either
  {@link #getProfileReportLastThread(Device)} or {@link #registerProfileReportObserver(IProfileReportObserver)}
  is encouraged instead.<br/>
  <b>Note2: </b>Calling this method is not recommended when using more than a single thread to execute
  the same kernel, or when running kernels on more than one device concurrently.<br/>
  <br/>
  Note that for the first call this will include the conversion time.<br/>
  <br/>
  @return <ul><li>The time spent executing the kernel (ms)</li>
  <li>NaN, if no profile report is available</li></ul>
  
  @see #getProfileReportCurrentThread(Device)
  @see #registerProfileReportObserver(IProfileReportObserver)
  @see #getAccumulatedExecutionTimeAllThreads(Device)
  
  @see #getConversionTime();
  @see #getAccumulatedExecutionTime();