小编ham*_*emi的帖子

看到汇编推送操作数是瓶颈的原因

我有一段用C编写的代码,我想找到这段代码的瓶颈!使用perf工具并注释汇编代码,我发现push %r12函数开头的指令是瓶颈(见图):

我对此有点困惑!一条简单的推送指令如何导致成为瓶颈?是否有可能CPU在将寄存器内容压入堆栈之前被迫从缓存更新内存内容?如果是,如果您让我知道背后的原因是什么,我将不胜感激。

这是我的函数的输入参数,以防需要:

nt32_t
rte_hash_lookup(const struct rte_hash *h, const void *key)
{
    RETURN_IF_TRUE(((h == NULL) || (key == NULL)), -EINVAL);
    return __rte_hash_lookup_with_hash(h, key, rte_hash_hash(h, key), NULL);
}
Run Code Online (Sandbox Code Playgroud)

c c++ assembly cpu-registers cpu-cache

6
推荐指数
0
解决办法
114
查看次数

如何在Kotlin分组后对多个元素求和

我有一个对象列表A(alist).

A { 
  val b : Int
  val c1 : Int
  val c2 : Int
  val d1 : Int
  val d2 : Int
}
Run Code Online (Sandbox Code Playgroud)

我想他们组b和计算的总和c1+c2,并d1+d2在每个组,并把结果在电子商务的对象名单elist.

E {
  val sum_of_c_types : Int
  val sum_of_d_types : Int
}
Run Code Online (Sandbox Code Playgroud)

如何使用任何集合内置函数在kotlin中实现?

注意:

我知道我可以用reduce函数来创建临时的A对象,但这对于在代码中不使用临时A对象很重要.

kotlin

3
推荐指数
2
解决办法
3050
查看次数

当 url 包含大括号字符时,Spring-boot 控制器错误

我有一个控制器,它接收GET带有 2 个参数的请求,e并且p

@GetMapping("")
public String getIframe(
    @RequestParam(value = "p", required = false) String p,
    @RequestParam(value = "e", required = false) String e
){
    System.out.println("Hi");
}
Run Code Online (Sandbox Code Playgroud)

在某些情况下ep值可以包含{}字符。它在 spring-boot 1 中运行良好,但在将模块更新到 spring-boot 2 后,它开始引发异常:

java.net.URISyntaxException: Illegal character in query at index 47: http://127.0.0.1:8080/shorteners/click/RikBV?e={CLICKID}&p={PUBID}
  at java.net.URI$Parser.fail(URI.java:2848)
  at java.net.URI$Parser.checkChars(URI.java:3021)
  at java.net.URI$Parser.parseHierarchical(URI.java:3111)
  at java.net.URI$Parser.parse(URI.java:3053)
  at java.net.URI.<init>(URI.java:588)
  at java.net.URI.create(URI.java:850)
  ... 45 common frames omitted
Wrapped by: java.lang.IllegalArgumentException: Illegal character in query at index …
Run Code Online (Sandbox Code Playgroud)

java spring spring-boot

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

标签 统计

assembly ×1

c ×1

c++ ×1

cpu-cache ×1

cpu-registers ×1

java ×1

kotlin ×1

spring ×1

spring-boot ×1