对于 SQL 数据库,我可以在 Azure 门户的“概述”边栏选项卡中轻松查看数据库的大小。或者我可以查询例如EXEC sp_spaceused以找出答案。
Cosmos DB 有这样的东西吗?
背景:我为各种编程语言制作了一个愚蠢的代码生成程序,目的是比较各种编译器编译由简单函数构成的荒谬的长100K + LOC程序需要多长时间.但是在编译时,程序的Rust版本在给出优化标志时从未完成编译rustc.
我发现,制作一个相当小的Rust程序(下面的例子)很容易(对我的感觉)花费太长时间来编译-C opt-level=2或使用-C opt-level=3标志rustc.我尝试在1.16稳定,1.30稳定,1.32.0夜间在Linux和1.30稳定在macOS和Windows上 - 所有看起来对我来说太长时间无法编译.我这样说是因为相比之下,大致相当于C++需要花费一秒钟来编译clang++ -O3.这引出了几个问题:
rustc正在(慢慢地)对此代码进行clang操作?rustc?如果一个特定的优化opt-level=2 是罪魁祸首,那将是很酷的.该rustc指南将告诉您如何打开调试日志.使用它得到:
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(std::rt::lang_start::<()>)
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(std::rt::lang_start::{{closure}}::<(), i8, extern "rust-call" fn(()) -> i32, fn()>)
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(std::sys::unix::process::process_common::ExitCode::as_i32)
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(<[closure@DefId(1/1:1916 ~ std[424f]::rt[0]::lang_start[0]::{{closure}}[0]) 0:fn()] as std::ops::FnOnce<()>>::call_once - shim)
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(<[closure@DefId(1/1:1916 ~ std[424f]::rt[0]::lang_start[0]::{{closure}}[0]) 0:fn()] as std::ops::FnOnce<()>>::call_once - shim(vtable))
INFO 2018-12-09T19:37:54Z: rustc_codegen_ssa::base: codegen_instance(std::ptr::real_drop_in_place::<[closure@DefId(1/1:1916 ~ std[424f]::rt[0]::lang_start[0]::{{closure}}[0]) 0:fn()]> …Run Code Online (Sandbox Code Playgroud) C# 8 现在具有IAsyncEnumerable。有与此等效的 Kotlin 吗?例如,在 C# 中,您await foreach(...)现在可以(使用IAsyncEnumerable):
async Task Main()
{
await foreach(var dt in new Seconds().Take(10))
{
Console.WriteLine(dt);
}
}
public class Seconds : IAsyncEnumerable<DateTime>
{
public class FooEnumerator : IAsyncEnumerator<DateTime>
{
public DateTime Current { get; set; }
public async ValueTask DisposeAsync() {}
public async ValueTask<bool> MoveNextAsync()
{
await Task.Delay(1000);
Current = DateTime.Now;
return true;
}
}
public IAsyncEnumerator<DateTime> GetAsyncEnumerator(CancellationToken cancellationToken = default)
=> new FooEnumerator();
}
Run Code Online (Sandbox Code Playgroud)