Live data from Hacker News

Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

blogs.msdn.microsoft.com

141–150 of 159 posts

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#141

Earlier quoted context omitted.

> This only works in real mode, where the segment is shifted and directly added to the offset. In protected mode, it goes through a selector table. Of course this is true. You wrote further above: > In a 16-bit address space (64K), you hit the 16-bit limit _all the time_. I wanted to outline that whether this is a problem or not depends a lot on the concrete 16 bit architecture.

Are you thinking of a specific concrete 16-bit architecture where it's easy to access data objects larger than 64K? I'd be interested to hears... I really can't. Probably the most capable architecture I'm familiar with that has a native 16-bit pointer type is the 80286, which provides 24-bit physical addressing, virtualizatoin, protections, etc. Even then, at least on Windows, key local heaps within the OS were confi…

> Are you thinking of a specific concrete 16-bit architecture where it's easy to access data objects larger than 64K?

Your question implies that you want one piece > 64 KiB of flat memory. With this you already stated a very strong implicit assumption about the data layout and the kind of algorithm that you want to use. My point rather is: Consider the capabilities that the 16b machine has and try to fit the data representation and algorithms that you use around it instead of wining about lack of machine capabilities. One will often find a solution using clever tricks that one would not have considered otherwise, which will often turn out to be surprisingly elegant and much better than the "naive" solution.

This way to program is of course nothing for the kind of programmer that want to write an unelegant and just working program in a short amount of time, I know. :-)

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#142
post #51

Earlier quoted context omitted.

> If I've got a box with 512GB of ram, it seems I'm supposed to spin up multiple instances to satisfy this, all because the JVM has a hissy fit if you go over ~30GB. What is the actual technical reason why the JVM cannot (easily?) address more than 32 GiB of RAM?

The ES documentation goes into more detail on this. https://www.elastic.co/guide/en/elasticsearch/guide/current/...

Thanks.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#143
post #120

Earlier quoted context omitted.

Probably the parts that are still in native code include stuff that is performance-sensitive, like the guts of the compilers. It's probably intricate and finely-tuned.

Only C++ ones, the main goal of Roslyn was to bootstrap C# and VB.NET compilers and get rid of their former C++ implementation. Now with Roslyn and .NET Native, they are planning to increasingly move more runtime stuff into C#. .NET Native backend is of course shared with Visual C++, aka C2, a kind of Microsoft's own LLVM-like approach.

.NET Native is new to me. It looks like it helps CIL languages to perform better. I'm not sure what it does to C/C++. I can't tell what the grand strategy is, but I guess they are catching up to Apple in some ways. It's amazing what Microsoft's resources allows them to do. Apple uses LLVM, and, of course, they would not be Microsoft if they adopted LLVM. Microsoft writes their own LLVM from scratch.

I think it's good to have additional implementations, even if they are rather insular about it.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#144
post #124

I don't see the point of this article. The VS team has moved more and more stuff out-of-process. VS 2015 can easily use more than 4 GB (if you're working in medium to large solutions), but it's divided up across 3-4 main processes. MSBuild processes (normally 1 per thread) are also staying around for 15 minutes now, so they can be reused.

Where it falls down is if the debugger tries to load more than 3GB of symbols. Guaranteed crash every single time. You can manually limit the symbols it loads - but that doesn't apply to other parts like the profiler which will still crash deterministically.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#145

Earlier quoted context omitted.

Are you thinking of a specific concrete 16-bit architecture where it's easy to access data objects larger than 64K? I'd be interested to hears... I really can't. Probably the most capable architecture I'm familiar with that has a native 16-bit pointer type is the 80286, which provides 24-bit physical addressing, virtualizatoin, protections, etc. Even then, at least on Windows, key local heaps within the OS were confi…

> Are you thinking of a specific concrete 16-bit architecture where it's easy to access data objects larger than 64K? Your question implies that you want one piece > 64 KiB of flat memory. With this you already stated a very strong implicit assumption about the data layout and the kind of algorithm that you want to use. My point rather is: Consider the capabilities that the 16b machine has and try to fit the data rep…

> Consider the capabilities that the 16b machine ...instead of wining about lack of machine capabilities. ...the kind of programmer that want to write an unelegant and just working program in a short amount of time,

I do hear you, but one of the things I love about virtually all modern hardware is just how much capability it puts within the reach of totally naive and quick development strategies. If I can inelegantly solve two or three problems in the same time I can elegantly solve one, then that strikes me as a net win (at least for the people that need problems solved more than code written.)

I don't mind pushing the hardware and searching for elegance, but I'd rather be forced into it by the necessities of the problem I'm trying to solve.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#146

Earlier quoted context omitted.

It was fixed in .net 4.6.2 [0] [0] https://blogs.msdn.microsoft.com/dotnet/2016/08/02/announcin...

Wow, fixed in 2016. As I recall, this was marked "wontfix" in 2013: https://visualstudio.uservoice.com/forums/121579-visual-stud... It's been _possible_ using the NT Unicode APIs since Windows 2000: https://msdn.microsoft.com/en-us/library/930f87yf.aspx But other common first-party windows development tools can still have the problem: https://github.com/Microsoft/msbuild/issues/53

I'm half surprised that wasn't in NT4 (prior to 2000 even)... been a major thing that pissed me off in .Net a couple years ago... "why in freaking 2014 is this still a problem?!?!"

Was really happy to see it was finally fixed in .Net and the Anniversary update, and long, long overdue.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#147
post #78

Earlier quoted context omitted.

I really hope it is. I don't really find VS Code to be any slower than VS. Of course, this depends on what you're using each for. I find I prefer VS Code because it has so few default features. The default install does not contain GB of bloat that I will never need. I'm able to build the experience I want, rather than fight one thrust upon me.

"I don't really find VS Code to be any slower than VS." Given VS Code has a fraction of the features VS has, it should be noticeably faster. It will eventually be GB of bloat and slower than VS. What I'd like to see instead is features being broken out into separate components that can be used by any other editor/tool. Of course, if every component is going to required it's own dot file in my home directory to (maybe…

You have a very different experience with VS than I have... right now, I'm waiting half an hour, so I can check out a branch from vsts, so I can wait another 6-8 minutes to build my solution, etc... it's painfully slow... VS Code, edit, next...

I've only seen VS Code run slow if you're running on 2gb of ram, or have hundreds of competing plugins installed, and even then. VS Code is way better than VS proper from my own subjective experience.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#148
post #120

Earlier quoted context omitted.

Only C++ ones, the main goal of Roslyn was to bootstrap C# and VB.NET compilers and get rid of their former C++ implementation. Now with Roslyn and .NET Native, they are planning to increasingly move more runtime stuff into C#. .NET Native backend is of course shared with Visual C++, aka C2, a kind of Microsoft's own LLVM-like approach.

.NET Native is new to me. It looks like it helps CIL languages to perform better. I'm not sure what it does to C/C++. I can't tell what the grand strategy is, but I guess they are catching up to Apple in some ways. It's amazing what Microsoft's resources allows them to do. Apple uses LLVM, and, of course, they would not be Microsoft if they adopted LLVM. Microsoft writes their own LLVM from scratch. I think it's good…

Actually Microsoft had their own LLVM first. :)

It was called Project Phoenix, developed at MSR.

https://en.wikipedia.org/wiki/Phoenix_(compiler_framework)

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#149
post #135

Earlier quoted context omitted.

Visual Studio Code is a wonderful text editor. But it's far from being a full-featured IDE.

Really? I find that really surprising. Because VS itself isn't anywhere close to a wonderful text editor. Like most IDE's, it is a mediocre text editor with a bunch of compelling (for certain workflows) tooling for project and build management, debugger, etc. Plus usable introspection. As a text editor though, a solid C+ at best. Is VS Code someone doing something radically different?

VS Code started with atom shell (now electron), and a JS based editor that was being worked on for VisualStudio online... combined they were pretty compelling, and at the time so much faster than say Atom or Brackets... It's been my editor of choice since first trying it and only better with each regular release. The entire thing is opensource.

Completely open source, rich plugin/extension community. Pretty much has become the editor of choice if you're working on node or go... more than decent with other platforms, and as a general editor. There are extensions to improve workflows, but all optional extensions.

I have git history, git lense, eslint, docker, c# (works for .net core), go, jest, npm, npm intellisense, yandex-translate (makes vscode worthwhile by itself), and a couple others.

I don't think I can go back... having the treeview, git integration, integrated console, it's all just way awesome to say the least.

Re: Revisiting 64-bit-ness in Visual Studio and elsewhere (2015)

#150
post #135

Earlier quoted context omitted.

Visual Studio Code is a wonderful text editor. But it's far from being a full-featured IDE.

Really? I find that really surprising. Because VS itself isn't anywhere close to a wonderful text editor. Like most IDE's, it is a mediocre text editor with a bunch of compelling (for certain workflows) tooling for project and build management, debugger, etc. Plus usable introspection. As a text editor though, a solid C+ at best. Is VS Code someone doing something radically different?

[deleted]
Post reply on HN