← Back to team overview

sikuli-driver team mailing list archive

[Bug 1162649] Re: X-1.0rc3: Region.exists(img, 0) waits minimum time given by WaitScanRate even when search time is shorter

 

Hi RaiMan,

Thanks for the information.  I did notice in the on-line documentation
that findNow() should throw an exception, but in my testing it didn't
seem to (which is why I put in the test to see if it returned None
instead, and that seems to work).  And no, I didn't turn off the
exception handling with either of Region.setThrowException() or
Region.setFindFailedResponse(). :-)

Also, thanks for putting the fix into the new X1.0 release -- I need to
download that soon! :-)  For your reference, in my case setting
waitScanRate(1000) is still too slow...takes 0.001 seconds or 1
millisecond.  With the performance tuning I am doing and the small
regions I'm working with, I actually get a match in about 0.26
milliseconds, and a non-match in about 0.17 milliseconds.  So a wait
time of 1 milliseconds increases my find time (success or fail) by about
4-6 times.

-- 
You received this bug notification because you are a member of Sikuli
Drivers, which is subscribed to Sikuli.
https://bugs.launchpad.net/bugs/1162649

Title:
  X-1.0rc3: Region.exists(img, 0) waits minimum time given by
  WaitScanRate even when search time is shorter

Status in Sikuli:
  Fix Committed

Bug description:
  The Region.exists() function has an unnecessary sleep in it, even when
  the wait time is set to 0 (eg. Region.exists("myimage.png", 0).  The
  shortest possible sleep time is 1/Settings.WaitScanRate, with
  WaitScanRate set to 1000.  Values for WaitScanRate > 1000 are ignored,
  and less than 1000 result in a longer wait time.  I believe that when
  exists() is called with a 0 wait time, then after doing the find it
  should immediately return the result without sleeping for
  1/Settings.WaitScanRate seconds first.

  All that said, as a workaround, the findNow() function can be used for an immediate find instead, as it does not have the extra delay (and is in fact unaffected by the WaitScanRate setting).  So, in code, rather than using:
     Region.exists("image.png", 0)
  instead use:
     (findNow("image.png") != None)

  This was observed in Sikuli X 1.0-rc3 (r905), on a Windows 7 64-bit
  OS.

  Side note:  one might reasonably assume that an extra delay of 1/1000
  of a second might be considered negligible / inconsequential, but I am
  using Sikuli in an application which is being tightly performance
  tuned, and the time to determine whether an image exists in a region
  only takes about 0.2 milliseconds, so the extra 1 millisecond added on
  top really slows things down :-).

To manage notifications about this bug go to:
https://bugs.launchpad.net/sikuli/+bug/1162649/+subscriptions


References