小编Aar*_*n B的帖子

如何查看 Cosmos DB 大小?

对于 SQL 数据库,我可以在 Azure 门户的“概述”边栏选项卡中轻松查看数据库的大小。或者我可以查询例如EXEC sp_spaceused以找出答案。

Cosmos DB 有这样的东西吗?

azure-cosmosdb

11
推荐指数
2
解决办法
8138
查看次数

为什么rustc需要一分钟来编译这个250行程序并进行优化?

背景:我为各种编程语言制作了一个愚蠢的代码生成程序,目的是比较各种编译器编译由简单函数构成的荒谬的长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)

compiler-optimization rust

5
推荐指数
1
解决办法
356
查看次数

Kotlin 中与 C# 8 的异步枚举等效的是什么?

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)

async-await kotlin kotlin-coroutines

3
推荐指数
1
解决办法
579
查看次数