小编ElB*_*ulP的帖子

无法在二进制文件中找到.dtors和.ctors

我正在读"黑客"这本书.在这本书中有解释使用的部分.dtors.ctors.

我正在尝试重现本书的一个练习,但在我的可执行文件中,我没有这一部分.起初我认为问题是我正在编译64位,但现在我正在编译32位.dtors并且.ctors仍然没有出现在节表中.这是代码:

#include <stdio.h>
#include <stdlib.h>

static void
miConstructor(void) __attribute__ ((constructor));
static void
miDestructor(void) __attribute__ ((destructor));

int
main(void) {
printf("En main() \n");
return 0;
}

void
miConstructor(void) {
printf("En el constructor\n");
}

void
miDestructor(void) {
    printf("En el destructor\n");
}
Run Code Online (Sandbox Code Playgroud)

我正在编译:

 gcc -m32 -o a.out dtors_example.c
Run Code Online (Sandbox Code Playgroud)

这是nm的输出:

080495f0 d _DYNAMIC
080496e4 d _GLOBAL_OFFSET_TABLE_
080484dc R _IO_stdin_used
     w _ITM_deregisterTMCloneTable
     w _ITM_registerTMCloneTable
     w _Jv_RegisterClasses
080485d8 r __FRAME_END__
080495ec d __JCR_END__
080495ec d __JCR_LIST__
08049704 D …
Run Code Online (Sandbox Code Playgroud)

c constructor destructor objdump nm

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

如何在python中优化矩阵的数学运算

我正在尝试减少使用两个矩阵执行一系列计算的函数的时间.寻找这个,我听说过numpy,但我真的不知道如何将它应用于我的问题.此外,我认为其中一个原因是让我的功能变慢是有很多点操作员(我在这个页面中听说过).

数学对应于二次分配问题的分解:

QAP分解

我的代码是:

    delta = 0
    for k in xrange(self._tam):
        if k != r and k != s:
            delta +=
                self._data.stream_matrix[r][k] \
                * (self._data.distance_matrix[sol[s]][sol[k]] - self._data.distance_matrix[sol[r]][sol[k]]) + \
                self._data.stream_matrix[s][k] \
                * (self._data.distance_matrix[sol[r]][sol[k]] - self._data.distance_matrix[sol[s]][sol[k]]) + \
                self._data.stream_matrix[k][r] \
                * (self._data.distance_matrix[sol[k]][sol[s]] - self._data.distance_matrix[sol[k]][sol[r]]) + \
                self._data.stream_matrix[k][s] \
                * (self._data.distance_matrix[sol[k]][sol[r]] - self._data.distance_matrix[sol[k]][sol[s]])
    return delta
Run Code Online (Sandbox Code Playgroud)

在大小为20(Matrix为20x20)的问题上运行此操作需要大约20个segs,瓶颈在于此功能

ncalls  tottime  percall  cumtime  percall filename:lineno(function)
303878   15.712    0.000   15.712    0.000 Heuristic.py:66(deltaC)
Run Code Online (Sandbox Code Playgroud)

我试图应用于mapfor循环,但因为循环体不是函数调用,所以不可能.

我怎么能减少时间?

EDIT1

要回答eickenberg的评论:

sol是一种排列,例如[1,2,3,4].当我生成邻居解决方案时调用该函数,因此,[1,2,3,4]的邻居是[2,1,3,4].我只改变原始排列中的两个位置然后调用deltaC,它计算具有位置r,s swaped的解的分解(在上面的例子中r,s = 0,1).进行这种排列是为了避免计算邻居解决方案的全部成本.我想我可以将值存储 …

python heuristics numpy matrix

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

SBT - Scala 2.10.4:缺少scala.tools.nsc.Global

我正在运行ubuntu并安装了sbt-0.13.5.sbt在命令行上键入时,我收到以下错误:

Getting Scala 2.10.4 (for sbt)...
:: retrieving :: org.scala-sbt#boot-scala
    confs: [default]
    0 artifacts copied, 5 already retrieved (0kB/17ms)
Error: Could not retrieve Scala 2.10.4: missing scala.tools.nsc.Global
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激.

scala sbt typesafe-activator

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

在不知道 opencv 类型的情况下访问矩阵值

我正在编写一个函数,在该函数中我需要访问 a 的元素Mat,但该函数可以接收Mat不同的类型。所以,如果我有:

filtered.at<TypeofMat>(i) = (typeofmat) somevalue;
Run Code Online (Sandbox Code Playgroud)

我只是filtered.at<myMat.type()>(i)想到做这样的事情,但显然这不起作用,因为type返回一个int

我被卡住了,有人能给点光吗?

c++ opencv mat

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

尝试实现amp-mustache时出错

我试图复制这个例子没有成功.我想使用mustache模板添加列表,如下所示:

<ul>
    <amp-list width=auto
              height=100
              layout=fixed-height
              src="/assets/popular.json">
          <template type="amp-mustache"
                    id="amp-template-id">
              <li>
                  <a href={{url}}>{{title}}</a>
              </li>
          </template>
    </amp-list>
</ul>
Run Code Online (Sandbox Code Playgroud)

我的/assets/popular.json档案是:

{
 "items": [
   {
     "title": "amp-carousel",
     "url": "https://ampbyexample.com/components/amp-carousel"
   },
   {
     "title": "amp-img",
     "url": "https://ampbyexample.com/components/amp-img"
   },
   {
     "title": "amp-ad",
     "url": "https://ampbyexample.com/components/amp-ad"
   },
   {
     "title": "amp-accordion",
     "url": "https://ampbyexample.com/components/amp-accordion"
   }
 ]
}
Run Code Online (Sandbox Code Playgroud)

但我不能让它工作,json模板中的值没有被替换,我得到这个错误:

Missing URL for attribute 'href' in tag 'a'
Run Code Online (Sandbox Code Playgroud)

我不知道为什么价值{{url}}没有被正确地替换为内容json.

我已经添加了必要scripts的头部.

json jekyll mustache amp-html amp-mustache

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

DataGridCell的行索引

我有一个DataGrid和一个点击我想找到一个单击的单元格的索引.我找到一种方式来获得DataGridCell,和DataGridCellInfo,但在仅列索引.

如何获得行索引?我无法找到一种方法来获得它.

c# wpf datagrid

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

从Akka演员那里得到消息

我建立了一个Akka actor,它定期查询API,如下所示:

  val cancellable =
    system.scheduler.schedule(0 milliseconds,
      5 seconds,
      actor,
      QueryController(1))
Run Code Online (Sandbox Code Playgroud)

演员本质上是:

object UpdateStatistics {
  /**
   * Query the controller for the given switch Id
   *
   * @param dpId Switch's Id
   */
  case class QueryController(dpId: Int)
  case object Stop

  def props: Props = Props[UpdateStatistics]
}

class UpdateStatistics extends Actor with akka.actor.ActorLogging {
  import UpdateStatistics._

  def receive = {

    case QueryController(id) =>
      import context.dispatcher
      log.info(s"Receiving request to query controller")
      Future { FlowCollector.getSwitchFlows(1) } onComplete {
        f => self ! f.get
      } …
Run Code Online (Sandbox Code Playgroud)

scala actor akka

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

使用Amp-carousel和Amp-mustache模板

尝试使用Mustache从JSON COR文件调用图像到amp-carousel.认为这应该很容易,但有一些问题.

<amp-list width=auto
          height=auto
          layout=fixed-height
          src="carousel.json">



                <template type="amp-mustache" id="amp-template-id">

                    <li>

                      <amp-carousel width="400"
                          height="244"
                          layout="fixed"
                          type="slides"
                          autoplay
                          delay="4000">  

                    <amp-img width="400"
                             height="244"
                             layout="fixed"
                             src="{{src}}"></amp-img>                     


                      </amp-carousel>
                </li>

                </template>


                <div overflow
                     role=button
                     aria-label="Show more"
                     class="list-overflow">
                    Show more
                </div>
            </amp-list>
Run Code Online (Sandbox Code Playgroud)

mustache amp-html amp-mustache

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

Scala中的Curry函数

我是Scala的新手,我刚刚开始学习它,现在尝试一些练习。特别是我对此很难理解。

我了解到这一(f: (A, B) => C)部分,但其余的我不太明白。有人可以解释匿名功能部分之后发生了什么吗?

谢谢!

这是功能:

def curry[A, B, C](f: (A, B) => C): A => (B => C) = a => b => f(a, b)
Run Code Online (Sandbox Code Playgroud)

scala currying

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

并行化矩阵按行和按行使用OpenMP按行计算

对于我的一些家庭作业,我需要通过向量实现矩阵的乘法,按行和列并行化.我确实理解行版本,但我在列版本中有点困惑.

假设我们有以下数据:

Matix时代矢量

行版本的代码:

#pragma omp parallel default(none) shared(i,v2,v1,matrix,tam) private(j)
  {
#pragma omp for
    for (i = 0; i < tam; i++)
      for (j = 0; j < tam; j++){
//        printf("Hebra %d hizo %d,%d\n", omp_get_thread_num(), i, j);
        v2[i] += matrix[i][j] * v1[j];
      }
  }
Run Code Online (Sandbox Code Playgroud)

这里的计算是正确的,结果是正确的.

列版本:

#pragma omp parallel default(none) shared(j,v2,v1,matrix,tam) private(i)
  {
    for (i = 0; i < tam; i++)
#pragma omp for
      for (j = 0; j < tam; j++) {
//            printf("Hebra %d hizo %d,%d\n", omp_get_thread_num(), i, …
Run Code Online (Sandbox Code Playgroud)

c parallel-processing openmp

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