-
-
Notifications
You must be signed in to change notification settings - Fork 118
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
The storage code didn't really do anything. It existed as a placeholder. Or rather, as a tool for API design. I didn't (and still don't) want to deal with any unnecessary complexity at this point in the experimentation. But I figured, it would still be good to write the APIs _as if_ operations were centrally stored. Because then I wouldn't accidentally design the system in a way, that would make centrally stored operations impractical. Because I believed (and still do) that this is going to be necessary for performance, at some point. (Definitely not right now, at this stage of the ongoing experiments.) But what I've realized, is that I don't actually know how exactly this centralized storage needs to be managed. I just kinda assumed that it makes sense to store operations grouped by type, as the mainline code currently does. But guess what, that hasn't been optimized for performance (or even profiled) either. And since there's currently no code (either in the experiments or mainline) that iterates over operations by type to mass-update them, which is the kind of access pattern that would benefit from grouping by type, I doubt that this was ever a good idea in the first place. Maybe it would be better to store operations heterogeneously, to minimize cache misses when iterating over operations as a tree. Maybe it makes sense to allocate them in multiple arenas, divided into generations, depending on which are updated when. Maybe. That's all speculation. But the facts are these: I don't know what the right approach is going to be, and meanwhile this fake storage code is slowing down the ongoing experiment. So I've decided to get rid of it. Of course, this way it's fairly certain that I'll have to re-architect things, once performance becomes a non-optional requirement. But at that point I'll also have information on my access patterns, so I'll be in a position to know what to optimize _for_. That's going to be a huge pain, of course. But I don't think I can avoid that, without having the answers to all these questions in advance. Which I don't.
- Loading branch information
1 parent
b23eec5
commit ef73336
Showing
7 changed files
with
12 additions
and
87 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,6 @@ mod geometry; | |
mod math; | ||
mod model; | ||
mod render; | ||
mod storage; | ||
mod topology; | ||
mod view; | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters