Sublime Forum

Dev Build 3029

#12

the startup time has become so fast that i think itā€™s unbelievable that the 99% of other apps are so slow!

here everything works finesā€¦ also the Package manager (iā€™m using Git trunk)

0 Likes

#13

[quote=ā€œjbjornsonā€]

[quote=ā€œbizooā€]My ST3 doesnā€™t doesnā€™t detect the update, is it working for you ?
startup, version: 3028 windows x64 channel: dev[/quote]

I manually ran the ā€œCheck for updatesā€¦ā€ option under the ā€œHelpā€ menuā€¦[/quote]

Done that, but ā€œno update availableā€.
It worked flawlessly with previous updates.

0 Likes

#14

I wasnā€™t happy with startup times on my OS X dev machine last week, so I spent some more time looking at it. Startup speed with ~500 files open was about 450ms, which is just enough to feel slow.

After some profiling, the culprits were:

  • Font rasterisation. When creating fonts, the ASCII glyphs were eagerly cached, allowing faster lookups (array lookup vs hash table lookup for non-ascii glyphs). The faster lookup is important, but the eager glyph creation isnā€™t: for the cost of one well predicted branch, the ASCII glyphs can be lazily generated. This alone saved about 80ms of startup time for my test case.
  • Additional laziness during session restore. Moved some work that was being done per-file during session restore to be done once at the end of session restoration. Saved a small amount of time.
  • Faster settings lookup. An unexpectedly large amount of time was being spend applying settings to view objects. Firstly, it was being done too frequently, so I reduced that. The next item was that each lookup was triggering a memory allocation, which is a common pitfall of using a std::map in C++ keyed by strings. Fixing that helped a little too.

After the above and a few other things, the test case went from ~450ms to a bit above 300ms. Aside from the font rasterisaion changes, most of the improvements should only be important if you have a large number of files open. Last time I was benchmarking startup times, it was with a much smaller number of open files, and the ASCII glyph lookup optimisation hadnā€™t been implemented.

You should generally see better numbers than 300ms for a warm startup, for example, on my Windows dev machine, which has much less than 500 files open, startup times are around 80ms.

0 Likes

#15

We use wininet.dll on Windows, which is AFAIK the same mechanism that Internet Explorer uses. It supports whatever proxy settings the system is setup with, including any crazy proxy auto configuration. NSURLConnection is used on OS X, which also makes use of the system proxy settings.

0 Likes

#16

[quote=ā€œbizooā€]

I manually ran the ā€œCheck for updatesā€¦ā€ option under the ā€œHelpā€ menuā€¦
Done that, but ā€œno update availableā€.
It worked flawlessly with previous updates.[/quote]

jps, do you need some info to debug this ?
Otherwise Iā€™ll download the install from the website.

0 Likes

#17

Looking at the console (3028), I noticed these lines:

unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation unknown include #documentation launching: /C/Program Files/Sublime Text 3/plugin_host.exe
Look like itā€™s before the plugins are loaded, so it probably come from core ST3.

0 Likes

#18

[quote=ā€œwuubā€]

thedailywtf.com/Articles/The-Speedup-Loop.aspx ;)[/quote]

:slight_smile:

So that means we can look forward to further speed-ups thanks to premature de-optimizationā€¦

0 Likes

#19

There are issues with this build, Iā€™ve taken it down for the moment.

0 Likes

#20

Are they fixed? Iā€™ve just updated to itā€¦

0 Likes

#21

[quote=ā€œadzenithā€]

Are they fixed? Iā€™ve just updated to itā€¦[/quote]

Me too.

0 Likes

#22

3030 is out now, which should fix the crash associated with theme reloading introduced in 3029.

0 Likes

#23

Faster start up is not helping on my setup. ā€œdirectwriteā€ font option is still broken, User/Preferences (Windows).sublime-settings is still ignored and manual font setting via a plugin takes over a second until everything is displayed correctly.

0 Likes

#24

[quote=ā€œjpsā€]

We use wininet.dll on Windows, which is AFAIK the same mechanism that Internet Explorer uses. It supports whatever proxy settings the system is setup with, including any crazy proxy auto configuration. NSURLConnection is used on OS X, which also makes use of the system proxy settings.[/quote]

jps, any possibility of providing some net access via the API that connects using wininet.dll/NSURLConnection (for us users imprisoned by our work proxies)? Iā€™ve been unable to find any examples of accessing via wininet.dll in python, and thought it might be helpful if there was a common approach for retrieving online resourcesā€¦

0 Likes

#25

@jbjornson
Iā€™m using pypi.python.org/pypi/neehi to get into different networks from within local SublimeREPL.
IIRC it does not know how to use system configured proxy, but if youā€™re able to point it to one , everything should just work.

Just watch out for python extensions opening sockets in C (e.g. zmq), those will not be proxied.

0 Likes

#26

I also wish jps would tell us a little bit about this process :smile: But I respect that he is a private guy, and very busy with ST.


SOMEBODY PLEASE EXPLAIN ME always_show_minimap_viewport, it doesnā€™t do anything for me! I though I could get minimap only on mouse hover or something?

0 Likes

#27

I have a small, insignificant bug Iā€™ve been meaning to mention (itā€™s been around for all of ST3): On (at least) Linux 64bit under Project >> Open Recent, if a project name has an underscore it will double the underscore. So a project saved as ā€˜my_project.sublime-projectā€™ will be displayed as ā€˜my__project.sublime-projectā€™ in the menu.

Also, I know itā€™s been said before, but DAMN - such fast starting times. Thank you :smiley:

0 Likes

#28

God bless, just trying out ST3 and i like it, but i cannot use it easily for work yet because it fails to save files on drives mounted with SFTPNetDrive free, something about MoveFileEx of a temporary file failing. It also fails with Dokan SFTP mount. I am on Windows 8 and cannot try using ExpanDrive for SFTP mounting yet but would prefer it work with free extensions anyways. Both of the previous solutions work with ST<3 .

0 Likes

#29

Setting ā€œatomic_saveā€ pref to false will probably help you.

0 Likes

#30

[quote=ā€œrchlā€]

Setting ā€œatomic_saveā€ pref to false will probably help you.[/quote]

God bless, Thanks, it workedā€¦ it seems like atomic save would be useful for SFTP mapped drives, i hope it can work with this later on with some of these tools.

0 Likes

#31

For the record I also stumbled upon this error with SFTPNetDrive, enabling ā€œDelete existing target before movingā€ solved the problem.

0 Likes