Frequently Asked Questions > Writing Better and Faster Scripts > How To Make It Faster? >

# Do not use return, break, exit or continue

MAXScript FAQ > How To Make It Faster > Do not use return, break, exit or continue

Return, break, exit, continue and throw are implemented using C++ exception.

C++ exceptions are SLOW!

TEST CASES:
    fn test1a v = (if v == true do return 1; 0)
    fn test1b v = (if v == true then 1 else 0)

FOR 100,000 ITERATIONS:
    test1a true  -- 15890 msec.
    test1a false  -- 78 msec.
    test1b true  -- 47 msec.
    test1b false  -- 62 msec.

TEST CASES:
    fn test2a =
    (
      local res
      for i = 1 to 1000 do
        if i == 10 do (res = i; break;)
      res
    )

    fn test2b =
    (
      local notfound = true, res
      for i = 1 to 1000 while notfound do
        if i == 10 do (res = i; notfound = false;)
      res
    )

FOR 100,000 ITERATIONS:
    test2a()   -- 84265 msec.
    test2b()   -- 1359 msec.

Previous Tip

matchPattern is faster than findString

Next Tip

Use StringStream to build large strings