published on 2023/05/22
Finally we see the increase in memory consumption of a C# program. But it is still very competitive. It even managed to slightly beat one of the Rust runtimes!
The distance between Go and others increased. Now Go loses over 12x to the winner. It also loses over 2x to Java, which contradicts the general perception of JVM being a memory hog and Go being lightweight.
Rust tokio remained unbeatable. This isn’t surprising after seeing how it did at 100k tasks.
Piotr
The used code
List<Task> tasks = new List<Task>();
for (int i = 0; i < numTasks; i++)
{
Task task = Task.Run(async () =>
{
await Task.Delay(TimeSpan.FromSeconds(10));
});
tasks.Add(task);
}
await Task.WhenAll(tasks);
should be rewritten to
List<Task> tasks = new List<Task>();
for (int i = 0; i < numTasks; i++)
{
Task task = Task.Delay(TimeSpan.FromSeconds(10));
tasks.Add(task);
}
await Task.WhenAll(tasks);
published on 2023/05/19
CG/SQL is a code generation system for the popular SQLite library that allows developers to write stored procedures in a variant of Transact-SQL (T-SQL) and compile them into C code that uses SQLite’s C API to do the coded operations. CG/SQL enables engineers to create highly complex stored procedures with very large queries, without the manual code checking that existing methods require.
CQSQL
published on 2023/05/19
Live data sources are fundamentally important in computer systems. Financial applications depend on a swift response to timely information. Computer networks have always been able to provide extensive information about their health and operation. Utility companies such as water providers have vast numbers of devices monitoring their operations. User interface and game building frameworks report user interactions in great detail. Delivery vans continuously report their progress. Aircraft provide performance telemetry to detect potential maintenance issues before they become serious problems, and cars are now starting to do the same. Many of us wear or carry devices that track our physical activity and even vital signs. And the improvements in machine learning have enriched the insights that can be derived from the ever-increasing volume and variety of live data.
Endjin
published on 2023/05/18
Large language models such as ChatGPT process and generate text sequences by first splitting the text into smaller units called tokens. In the image below, each colored block represents a unique token. Short or common words such as “you”, “say”, “loud”, and “always” are its own token, whereas longer or less common words such as “atrocious”, “precocious”, and “supercalifragilisticexpialidocious” are broken into smaller subwords.
This process of tokenization is not uniform across languages, leading to disparities in the number of tokens produced for equivalent expressions in different languages. For example, a sentence in Burmese or Amharic may require 10x more tokens than a similar message in English.
Yennie Jun
published on 2023/05/18
- Blazor
- Streaming rendering with Blazor components
- Handling form posts with Blazor SSR
- Route to named elements in Blazor
- Webcil packaging for Blazor WebAssembly apps
- API authoring
- Expanded support for form binding in minimal APIs
- API project template includes .http file
- Native AOT
- Logging and exception handling in compile-time generated minimal APIs
- ASP.NET Core top-level APIs annotated for trim warnings
- Reduced app size with configurable HTTPS support
- Worker Service template updates
- Additional default services configured in the slim builder
- API template JSON configuration changes
- Support for JSON serialization of compiler-generated IAsyncEnumerable unspeakable types
- Authentication and authorization
- Identity API endpoints
- Improved support for custom authorization policies with IAuthorizationRequirementData
- ASP.NET Core metrics
Microsoft
These are a nice set of improvements to the platform. This reddit discussion is very instructive.