RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题

全部问题

Martin Hope
Qwertiy
Asked: 2020-07-21 05:41:27 +0000 UTC

字符串和字符串生成器

  • 29

在 Java 和 C# 等语言中,通常使用 StringBuilder 连接大量字符串以获得线性渐近而不是二次渐近。

然而,JavaScript 以某种方式只能处理一种 String 类型。级联的渐近线在那里是线性的,至少对于高达 131072 次迭代的循环。但是,奇怪的是,时间并不取决于添加的字符串的长度。至少在 Chrome 中是这样的。

这是怎么发生的?

还有一个给 JS 鉴赏家的额外问题:262144 到底发生了什么?

http://ideone.com/gtm5iy

using System;
using System.Collections.Generic;
using System.Diagnostics;

public class Program
{
  private static string Test(int n, string s)
  {
    var res = "";

    for (var q=0; q<n; ++q)
      res += s;

    return res;
  }

  public static void Main()
  {
    var res = new Dictionary<string, double>[10];
    const int N = 1024;
    var sw = new Stopwatch();

    for (var n=0; n<res.Length; ++n)
    {
      res[n] = new Dictionary<string, double>();

      foreach (var s in new string[] {"!", "!2", "!234", "!2345678"})
      {
        res[n][s] = 0;

        for (var q=0; q<N; ++q)
        {
          sw.Restart();
          Test(1 << n, s);
          sw.Stop();
          res[n][s] += sw.ElapsedTicks;
        }

        res[n][s] /= N;
      }
    }

    for (var n=0; n<res.Length; ++n)
    {
      Console.Write("{0,2} {1,7} ", n, 1<<n);

      foreach (var kvp in res[n])
        Console.Write("{0,10:0.000} ", kvp.Value / 1000);

      Console.WriteLine();
    }
  }
}
 0       1      0.001      0.000      0.000      0.000 
 1       2      0.002      0.001      0.001      0.001 
 2       4      0.003      0.003      0.005      0.003 
 3       8      0.006      0.006      0.007      0.007 
 4      16      0.013      0.015      0.013      0.014 
 5      32      0.025      0.025      0.032      0.034 
 6      64      0.050      0.059      0.070      0.097 
 7     128      0.120      0.142      0.220      0.303 
 8     256      0.337      0.417      0.630      0.972 
 9     512      0.897      1.256      1.964      4.087

不幸的是,随着迭代次数的增加,该程序不适合在 ideone 上分配的 5 秒执行时间。以下是我家用电脑的结果:

D:\Temp\Supertemp>C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe StringConcat.cs && StringConcat.exe
Microsoft (R) Visual C# Compiler version 4.7.2046.0
for C# 5
Copyright (C) Microsoft Corporation. All rights reserved.

This compiler is provided as part of the Microsoft (R) .NET Framework, but only supports language versions up to C# 5, which is no longer the latest version. For compilers that support newer versions of the C# programming language, see http://go.microsoft.com/fwlink/?LinkID=533240

 0       1      0.000      0.000      0.000      0.000
 1       2      0.000      0.000      0.000      0.000
 2       4      0.000      0.000      0.000      0.000
 3       8      0.001      0.001      0.001      0.001
 4      16      0.002      0.001      0.001      0.002
 5      32      0.002      0.004      0.004      0.004
 6      64      0.005      0.006      0.009      0.014
 7     128      0.013      0.019      0.028      0.043
 8     256      0.042      0.057      0.087      0.148
 9     512      0.118      0.174      0.302      0.559
10    1024      0.354      0.606      1.124      2.279
11    2048      1.220      2.242      4.545     10.041
12    4096      4.517      8.982     19.706     41.568
13    8192     17.864     39.063     82.814    169.274
14   16384     78.454    165.893    337.830    718.843

function test(n, s) {
  var res = '';

  for (var q=0; q<n; ++q) {
    res += s;
  }

  return res;
}

var res = [], N = 1024;

for (var n=0; n<=18; ++n) {
  res.push({len: 1<<n});

  for (var s of ['!', '!2', '!234', '!2345678']) {
    res[n][s] = 0;

    for (var q=0; q<N; ++q) {
      var t = performance.now();
      test(1 << n, s);
      t = performance.now() - t;
      res[n][s] += t;
    }

    res[n][s] /= N;
    res[n][s] = res[n][s].toFixed(3);
  }
}

console.table(res)

截图

javascript
  • 1 个回答
  • 10 Views
Martin Hope
Barmaley
Asked: 2020-05-19 17:00:26 +0000 UTC

我需要明确关闭应用程序吗?

  • 29

我们都知道生命周期Activity,它是构成 Android 应用程序(至少是 UI)的基本构建块。

我们也知道Activity轴本身可以破坏什么,这取决于负载/内存可用性等。情况。

有这样的应用程序(例如,网上银行应用程序)需要授权/登录,在这种情况下,通过与普通桌面应用程序类比,选项/按钮/操作会自动提示 -退出/退出/退出,点击它会导致保证关闭应用程序。例如,著名的 Sberbank Online 移动应用程序中就使用了这种模式。

另一个稍微不太知名的 Tinkoff Bank 移动应用程序没有使用这样的模板(或者更确切地说,你可以通过这种方式退出应用程序,但它隐藏得相当深),退出应用程序,在这种情况下,是通过系统后退/后退按钮- 当到达后者堆栈的底部时Activity- 应用程序本身停止工作。

注意,问题是: Android 应用程序使用专门的退出/退出操作是正常的还是反模式?

android
  • 8 个回答
  • 10 Views
Martin Hope
MaximPro
Asked: 2020-02-17 08:50:53 +0000 UTC

printf 作为在 C 中打印变量的一种方式

  • 29

我不知道如何准确地表达我想问的问题,但它看起来像这样:

  1. 如何在C中打印变量的内容:

    char msg = 'k';
    printf("%c", msg);
    
  2. 如何在C++中打印变量的内容:

    char msg = 'k';
    cout << msg;
    

现在的问题是:

  1. 在C++中,您不需要为输出指定修饰符,那么为什么C中没有类似物cout(我知道该语言比C++古老得多,但仍然如此)?

  2. 他们经常写信给我说printf需要转换类型:

    char msg = 'k';
    printf("%f", (float)msg);
    

做什么的?在C++的类比中,您不必这样做!为什么我不能这样写:printf("%f", msg);?是什么原因?printf它不会自己将数据引导到我们指定的修饰符吗?

c++
  • 3 个回答
  • 10 Views
Martin Hope
Алексей Шиманский
Asked: 2020-01-01 21:55:34 +0000 UTC

Unity3D 书籍和学习资源

  • 29
这个问题的答案是作为社区的协作成果编写的。要改进这篇文章,请编辑现有答案。他无法发布新答案和其他操作。

我们收集了一些关于 Unity3D 的文献和文档。

  • 不要创建新答案 - 编辑一般答案。
  • 尽量保持分类(如有必要,添加一个新类别)。
  • 不要发布指向非法内容的链接,例如 Torrent Tracker。
  • 视频的唯一链接是 Unity3D 官方网站的教程。禁止添加其他视频讲座和互动课程!

此列表包含在社区支持的编程学习资源集合中。

unity3d
  • 1 个回答
  • 10 Views
Martin Hope
Andrew Kachalin
Asked: 2020-11-01 20:28:47 +0000 UTC

框架、库和 API 之间的区别?

  • 29

那么框架、库和API之间的真正区别是什么?有一种观点认为,所有这些都是紧密的概念,到处都有可以构建到客户端代码中的类和方法。然而,似乎存在显着差异?

framework
  • 8 个回答
  • 10 Views
上一页
下一页

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    我看不懂措辞

    • 1 个回答
  • Marko Smith

    请求的模块“del”不提供名为“default”的导出

    • 3 个回答
  • Marko Smith

    "!+tab" 在 HTML 的 vs 代码中不起作用

    • 5 个回答
  • Marko Smith

    我正在尝试解决“猜词”的问题。Python

    • 2 个回答
  • Marko Smith

    可以使用哪些命令将当前指针移动到指定的提交而不更改工作目录中的文件?

    • 1 个回答
  • Marko Smith

    Python解析野莓

    • 1 个回答
  • Marko Smith

    问题:“警告:检查最新版本的 pip 时出错。”

    • 2 个回答
  • Marko Smith

    帮助编写一个用值填充变量的循环。解决这个问题

    • 2 个回答
  • Marko Smith

    尽管依赖数组为空,但在渲染上调用了 2 次 useEffect

    • 2 个回答
  • Marko Smith

    数据不通过 Telegram.WebApp.sendData 发送

    • 1 个回答
  • Martin Hope
    Alexandr_TT 2020年新年大赛! 2020-12-20 18:20:21 +0000 UTC
  • Martin Hope
    Alexandr_TT 圣诞树动画 2020-12-23 00:38:08 +0000 UTC
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5