WriteAsync .NET

Testing, coding, in that order.

TKey performance indicators: primitives

Recently I encountered a situation where a seemingly innocuous change in the structure of a dictionary key had a noticeable negative performance impact (more on this later). This got me thinking, how exactly do different types of keys measure up…

By Brian Rogers | 29 July, 2019 | performance | 1 Comment |
Read more

An even faster hash table

Last week, in my continuing exploration of a C++ Letter Boxed solver, I had to build a faster hash table to improve performance. Today we’ll make it even faster, hoping to catch up to the performance of my .NET Core…

By Brian Rogers | 9 June, 2019 | games, native, performance | No Comments |
Read more

A faster hash table

Last time, I wrote about a native C++ implementation of the Letter Boxed solver. Vexingly, this native implementation was actually slower than the corresponding .NET Core app. Today we’ll try to fix that. As I mentioned, some basic profiling revealed…

By Brian Rogers | 3 June, 2019 | games, native, performance | No Comments |
Read more

Native code: always faster?

Last month, I explored some performance optimizations for a C# Letter Boxed solver. It was a fair bit of effort but in the end I could solve a typical puzzle in ~80 ms. Success! However, you might rightly point out…

By Brian Rogers | 28 May, 2019 | games, native, performance | 1 Comment |
Read more

Letter Boxed: perf gains and losses

After successfully optimizing the trie loading path, we apparently “pessimized” the solution path. Let’s see if we can find out why. I’ll start by building a benchmark for the word finding algorithm: FindWords benchmark Note that this benchmark eliminates all…

By Brian Rogers | 8 April, 2019 | games, performance | 1 Comment |
Read more

Letter Boxed: optimizing the trie

Last time, I demonstrated a relatively fast Letter Boxed solver. It took about 15 ms to solve the puzzle, but that was after a delay of over 200 ms while loading the trie. Surely we can squeeze some more performance…

By Brian Rogers | 7 April, 2019 | games, performance | 1 Comment |
Read more

Letter Boxed: an algorithmic solution

Previously, I introduced the Letter Boxed puzzle and a StringTrie data structure to help determine valid moves. Today, I will go over one possible algorithm to solve it. We first consider the Letter Box as a graph with numbered vertices…

By Brian Rogers | 31 March, 2019 | games | 1 Comment |
Read more

Letter Boxed: an introduction

Earlier this year, the New York Times introduced a new word game called Letter Boxed. The game consists of a square with 12 letters evenly spaced around the edges, e.g.: The goal is to make valid words of three letters…

By Brian Rogers | 30 March, 2019 | games, math | 3 Comments |
Read more

Building an adventure game: part 4

Welcome to the fourth and final installment of my adventure game saga. We made it up to Day 15 last time. Let’s finish this up now. Day 16 I don’t like that the method to add an item to a…

By Brian Rogers | 30 December, 2018 | design, tdd | No Comments |
Read more

Building an adventure game: part 3

I last left off on Day 8 of my adventure game project. We continue from Day 9 today. Day 9 After warming up with a simple rename, I decide I don’t like how TextConsole and InputLoop interact. If I want…

By Brian Rogers | 23 December, 2018 | design, tdd | 1 Comment |
Read more
  • « Previous
  • Next »
Copyright ©2025 WriteAsync .NET | Theme by: Theme Horse | Powered by: WordPress