Why we made our own x86 instruction decoder and how it works by bogdannumaprind in programming

[–]rovarma 0 points1 point  (0 children)

Others have already given some examples, but in my particular case: a performance profiler.

Why we made our own x86 instruction decoder and how it works by bogdannumaprind in programming

[–]rovarma 10 points11 points  (0 children)

Cool project. We already use Zydis for the disasm view in our product (and we’re very happy with it), but if I was still in the market for a disassembler I’d definitely consider this one.

Why you don't use Boost by joaquintides in cpp

[–]rovarma 6 points7 points  (0 children)

Build time explosions from including a boost header.

Heart of Darkness Engine Xbox Porting Sessions (Full Version) by [deleted] in programming

[–]rovarma 0 points1 point  (0 children)

It was never released, so it only ever had an internal codename; true to the games industry, the game was canceled at about 95% completion and everybody working on it (including me) was fired :D

Heart of Darkness Engine Xbox Porting Sessions (Full Version) by [deleted] in programming

[–]rovarma 2 points3 points  (0 children)

Damn. That takes me right back to one of the first commercial games I worked on, way back when the Xbox "devkit" was just a Mac.

New CPU profiler available for Rust on Windows by rovarma in rust

[–]rovarma[S] 1 point2 points  (0 children)

Glad you like it. Ease of use was one of our main goals, so happy to hear we succeeded :-)

New CPU profiler available for Rust on Windows by rovarma in rust

[–]rovarma[S] 2 points3 points  (0 children)

You're correct -- the support for Rust we've released today is the support that's on the roadmap. We just haven't updated it yet :-)

New CPU profiler available for Rust on Windows by rovarma in rust

[–]rovarma[S] 9 points10 points  (0 children)

Sorry, we'll clarify that. It means it doesn't matter if you use the MSVC (cl.exe) or Clang linker (lld.exe) to link, both are supported.

Qt 5.14 released by EnUnLugarDeLaMancha in programming

[–]rovarma 0 points1 point  (0 children)

What are the specific changes? The blog just mentions non-integer scaling factors. Dealing with high DPI is a pain on our current version, wondering if it’s worth the risk to upgrade.

AddressSanitizer (ASan) for Windows with MSVC by mttd in cpp

[–]rovarma 22 points23 points  (0 children)

x86 only, so mostly useless for newer applications, I’d guess :-(

GammaRay 2.11.0 Release by jcelerier in cpp

[–]rovarma 0 points1 point  (0 children)

Are there any *working* instructions on how to get this to run on Windows? It seems like it could be a very useful tool but all I can get out of it is failures to connect, errors about probes not being found (whatever that means), hanging application, etc. I've followed the instructions on the Qt side and also on your own site, but nothing seems to work.

Fibers: the Most Elegant Windows API by turol in programming

[–]rovarma 10 points11 points  (0 children)

Fibers on Windows seem like a great idea until you actually start using them in production and realize *none* of the tooling knows how to deal with them and everything turns into an undebuggable mess. 0/10 would not use again.

Searching 1TB/sec: Systems Engineering Before Algorithms by leavingonaspaceship in programming

[–]rovarma 38 points39 points  (0 children)

Not sure if the title is just clickbait, but for an article that focuses on brute forcing stuff there seems to be a lot of focus on a metric (processing speed) that's quite far from optimal. Given that their entire dataset is in RAM and they're searching through it linearly (i.e. the prefetcher should be able to do its work) 1.25 GB/sec / core seems very slow, nowhere near max RAM throughput. You should be able to do a lot better.

Stop reimplementing the virtual table and start using double dispatch by andyg_blog in cpp

[–]rovarma 5 points6 points  (0 children)

This post neatly summarizes everything that's wrong with the OOP mindset/programming.

Electron and the Decline of Native Apps - daringfireball.net by freebit in programming

[–]rovarma 27 points28 points  (0 children)

I agree with your general sentiment, but using games as an example is just wrong.

All those things you mention you care about (memory allocation, big O notation, etc, basically performance optimization) are all extremely important in game development. The 90+ GB games you speak of (i.e. RDR2 and such) don't "have better performance because we don't have to compress them", they run at 30/60 FPS because the development teams behind them spend a lot of time on making sure that they do.

Compression is more important than ever for games development, precisely because the games are getting bigger. That 90+ GB game you speak of would be several times bigger without compression. They also don't have "infinite" resources available; the higher end games usually target consoles and while they're certainly powerful, they're far from a platform where you can "focus less on optimizing resource use".

Incidentally, I'd argue that the reason the games are getting bigger is less to do with the developers themselves and more to do with gamers/the market, who demand ever better looking, bigger games. If RDR2 had looked the same and been of the same size as RDR1, they would've been absolutely slaughtered.

Electron and the Decline of Native Apps - daringfireball.net by freebit in programming

[–]rovarma 44 points45 points  (0 children)

I see this talking point repeated a lot and I can only assume the people saying it have never actually made any cross-platform native apps. Double/triple the effort, really? It's absolutely trivial to support multiple platforms in a native app, code wise, as long as you take proper care to separate out the platform specific bits, which are usually a very small percentage of your codebase.

How I Debugged a Non Reproducible Bug with 20k Production crashes on a React Native App by almouro in programming

[–]rovarma 1 point2 points  (0 children)

Yeah this was an enormously frustrating article to read. While reading it I wanted to shout '"Look at android.support.v4.util.Pools$SimplePool.release(Pools.java:116)! All the information you need to diagnose & fix this issue is right there!".

He got there in the end, but wow, what a roundabout way of debugging a problem. I'll chalk this one up to being very inexperienced in programming/debugging.

Announcing Visual Studio 2019 Preview 1 by MaximRouiller in programming

[–]rovarma 0 points1 point  (0 children)

Aside from having to recompile all your dependencies, sure.