问题列表 - 第317990页

为什么添加break语句会显着减慢Numba函数的速度?

我有以下 Numba 功能:

\n
@numba.njit\ndef count_in_range(arr, min_value, max_value):\n    count = 0\n    for a in arr:\n        if min_value < a < max_value:\n            count += 1\n    return count\n
Run Code Online (Sandbox Code Playgroud)\n

它计算数组中有多少个值在该范围内。

\n

然而,我意识到我只需要确定它们是否存在。\n所以我修改如下:

\n
@numba.njit\ndef count_in_range2(arr, min_value, max_value):\n    count = 0\n    for a in arr:\n        if min_value < a < max_value:\n            count += 1\n            break  # <---- break here\n    return count\n
Run Code Online (Sandbox Code Playgroud)\n

然后,此函数会变得比更改之前慢。\n在某些条件下,它可能会慢 10 倍以上。

\n

基准代码:

\n
from timeit import timeit\n\nrng = np.random.default_rng(0)\narr = rng.random(10 * 1000 * 1000)\n\n# To compare …
Run Code Online (Sandbox Code Playgroud)

python performance numba

4
推荐指数
1
解决办法
139
查看次数

Azure DevOps 中的 .NET 8 给出“错误 NETSDK1112:未下载 Microsoft.NETCore.App.Runtime.win-x64 的运行时包”

我已将 MSIX WPF 应用程序从 .NET 7 升级到 .NET 8,并且它在我自己的计算机上运行良好。但是当我尝试在 Azure DevOps 中构建它时,我收到错误:

C:\agent\_work\_tool\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(491,5): 
Error NETSDK1112: The runtime pack for Microsoft.NETCore.App.Runtime.win-x64 was not downloaded. Try running a NuGet restore with the RuntimeIdentifier 'win-x64'.

C:\agent\_work\_tool\dotnet\sdk\8.0.100\Sdks\Microsoft.NET.Sdk\targets\Microsoft.NET.Sdk.FrameworkReferenceResolution.targets(491,5): Error NETSDK1112: The runtime pack for Microsoft.WindowsDesktop.App.Runtime.win-x64 was not downloaded. Try running a NuGet restore with the RuntimeIdentifier 'win-x64'.
Run Code Online (Sandbox Code Playgroud)

我在本地构建服务器上和使用托管代理时都会遇到相同的错误。

我使用这些任务在计算机上安装和验证 .NET 8:

- task: UseDotNet@2
  inputs:
    version: '8.x'

- task: PowerShell@2
  displayName: 'Check .NET Version and SDKs'
  inputs:
    targetType: 'inline'
    script: |    
        dotnet --version
        dotnet --list-sdks …
Run Code Online (Sandbox Code Playgroud)

.net c# azure-pipelines msix

4
推荐指数
1
解决办法
1541
查看次数

当“*this”无效时,为什么 std::Optional 中的“operator-&gt;”会导致 UB?

根据 Cppreference,optional::value()onstd::nullopt会抛出异常,而解引用an optionalwhich isstd::nullopt是 UB。

我有测试,似乎UB在某些编译器中可能不会panic,这比panic更可怕,所以如果错误使用它是非常有害的。我并不是说 UB 是好的或有意义的,但是,它是一个错误,如果发生的话,错误的结果比恐慌更难调试。

struct I {
    int get() { return 1; }
};

void f() {
    try {
        std::optional<std::shared_ptr<I>> x = std::nullopt;
        printf("%d\n", (*x)->get()); // -----> UB
    }
    catch (std::bad_optional_access & e) {
        printf("it throws in f\n");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么std::optional设计为导致 UB 而不是像/value()那样抛出异常?operator*operator->

c++

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

os.OpenFile 对模式为 0666 的文件抛出“权限被拒绝”

这是代码:

\n
func main() {\n    _, err := os.OpenFile("/tmp/kd.log", os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0o666)\n    if err != nil {\n        panic(err)\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

我用root用户运行它来打开另一个用户创建的文件:

\n
root in ~ \xce\xbb la /tmp/kd.log\n-rw-rw-rw- 1 k k 3.0M Dec 12 16:57 /tmp/kd.log\n
Run Code Online (Sandbox Code Playgroud)\n

它抛出:

\n
panic: open /tmp/kd.log: permission denied\n\ngoroutine 1 [running]:\nmain.main()\n        /tmp/t/t.go:13 +0x45\nexit status 2\n
Run Code Online (Sandbox Code Playgroud)\n

我试过lsof /tmp/kd.log但没有输出。所以这个文件没有被其他进程使用。

\n

现在既然已经有了-rw-rw-rw-权限,就不应该出现这种错误了。

\n

我不知道我是否忽略了一些基本细节。如果我问了一个愚蠢的问题,请道歉。

\n

linux go

5
推荐指数
0
解决办法
104
查看次数

垃圾收集器实际上会删除超出范围的对象吗?

按照我的习惯理解,一旦代码退出块,局部变量就可以进行垃圾回收。

这是我的测试

@Test
public void testOutOfScopeGC() throws InterruptedException {
    MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
    System.out.println("Heap Memory Usage: " + memoryBean.getHeapMemoryUsage());
    try {
        int[] arr = new int[100000000];
        // arr = null;
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
    System.out.println("Heap Memory Usage: " + memoryBean.getHeapMemoryUsage());
    System.gc();
    // wait for GC
    Thread.sleep(5000);
    System.out.println("Heap Memory Usage after GC: " + memoryBean.getHeapMemoryUsage());
}
Run Code Online (Sandbox Code Playgroud)

结果是

@Test
public void testOutOfScopeGC() throws InterruptedException {
    MemoryMXBean memoryBean = ManagementFactory.getMemoryMXBean();
    System.out.println("Heap Memory Usage: " + memoryBean.getHeapMemoryUsage());
    try { …
Run Code Online (Sandbox Code Playgroud)

java garbage-collection

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

[[ strings ]] 与 lua 中的嵌套 [[ strings ]] ?

https://www.lua.org/pil/2.4.html中的示例 显示:

page = [[
    <HTML>
    <HEAD>
    <TITLE>An HTML Page</TITLE>
    </HEAD>
    <BODY>
     <A HREF="http://www.lua.org">Lua</A>
     [[a text between double brackets]]
    </BODY>
    </HTML>
    ]]
Run Code Online (Sandbox Code Playgroud)

但这给了我一个/错误</BODY>。

lua54: html.lua:9: unexpected symbol near '/'
Run Code Online (Sandbox Code Playgroud)

这本书出版后有什么变化吗?

lua

2
推荐指数
1
解决办法
54
查看次数

Delphi:Dll -&gt; DataSet.First 导致访问冲突

我有一个用 Delphi 编写的简单 Dll:

library usr_d;

uses
  System.SysUtils, System.Classes, DB,Vcl.Dialogs
  ;

{$R *.res}

Procedure SetMyData(DataSet: TDataSet);export;
begin
  if Assigned(DataSet) then
  begin
    ShowMessage(DataSet.FieldByName('MyFieldName1').AsString);
    try
      DataSet.First;
    except on E: Exception do
      ShowMessage('Error accessing field: ' + E.Message);
    end;
  end
  else
    ShowMessage('DataSet parameter is not assigned!');
end;

exports
  SetMyData;

begin
end.    
Run Code Online (Sandbox Code Playgroud)

我这样称呼它:

Procedure TMainForm.CallMyDll;

type
  TSetMyData = procedure(DataSet: TDataSet); stdcall;

Var
  MyHandle               : HMODULE;
  SetMyData              : TSetMyData;  

Begin
  MyHandle := LoadLibrary('c:\MyFolder\usr_d.dll');
  if MyHandle <> 0 then
   begin
     @SetMyData := GetProcAddress(MyHandle, 'SetMyData');
     if @SetMyData …
Run Code Online (Sandbox Code Playgroud)

delphi dll access-violation

0
推荐指数
1
解决办法
139
查看次数

如果 DIV 没有特定的同级,则 CSS 定位

我正在使用第三方应用程序生成的标记,因此我对其进行品牌化并遇到了我无法解决的情况。大多数时候,HTML<div>容器中会有两个<div>具有相同类名 的s formCol。总有一个clear兄弟姐妹:

<div class="formRow">
    <div class="formCol">Two Divs</div>
    <div class="formCol">With the Same Class</div>
    <div class="clear"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

.formCol有时容器中只有一个。我希望能够在formRow只有一个时定位formCol,但因为它仍然是我无法使用clear的兄弟姐妹。:only-of-type:only-child

<div class="formRow">
    <div class="formCol">One Div</div>
    <div class="clear"></div>
</div>
Run Code Online (Sandbox Code Playgroud)

formRow当其中只有一个时我该如何定位formCol?

html css

2
推荐指数
1
解决办法
125
查看次数

使用 const std::string&amp; 和 const std::vector&lt;std::string&gt;&amp; 进行函数调用

我有带有签名的函数:

    void add_word_rule(const std::string& word);
    void add_multiple_word_rules(const std::vector<std::string>& words);
Run Code Online (Sandbox Code Playgroud)

问题是这样的。如果用户调用该函数

    add_word_rule({"word_1","word_2"});
Run Code Online (Sandbox Code Playgroud)

它将编译。如何确保这样的调用不会编译?我怎样才能禁用这个构造函数basic_string( InputIt first, InputIt last)?

c++

5
推荐指数
2
解决办法
156
查看次数

如何设置 Bootstrap 新表单浮动输入标签的背景样式?

我正在使用 Bootstrap 5.3,并尝试使用新的“浮动标签”。我希望我的输入具有额外的样式,例如背景颜色。当我一开始添加微妙的绿色背景色时,在没有设置值的情况下看起来很好,但是一旦您聚焦或添加文本,您就会得到以下结果:

在此输入图像描述

如果我向标签添加背景颜色,它不会设置白色部分的样式,而是设置其周围某些区域的样式:

在此输入图像描述

这与 :before/:after 有关系吗?有人可以解释一下这个黑魔法吗?我正在使用 Brave,它需要在 Brave 中工作。

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet"/>


<div class="w-25 p-3">
    <div class="form-floating">
        <input class="form-control" type="text" placeholder=" " id="myElement" style="background-color: var(--bs-success-bg-subtle); color: var(--bs-success-text-emphasis); border-color: var(--bs-success-border-subtle);">
        <label class="form-label" for="myElement" style="color: var(--bs-success-text-emphasis); background-color: red;">Name</label>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

css twitter-bootstrap bootstrap-5

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