小编Kac*_*acy的帖子

随机存取存储器如何工作?为什么它是恒定时间随机访问?

或者换句话说,为什么访问数组中的任意元素需要花费不变的时间(而不是O(n)或其他时间)?

我搜索了一下我的心脏寻找答案,并没有找到一个非常好的答案,所以我希望你们中的一个人可以与我分享你们的低级知识.

只是为了让你知道我希望得到的答案有多低,我会告诉你为什么我认为它需要不断的时间.

当我array[4] = 12在程序中说,我实际上只是将存储器地址的位表示存储到寄存器中.硬件中的该物理寄存器将根据馈送它的位表示打开相应的电信号.那些电子信号将以某种方式神奇地(希望有人可以解释魔法)在物理/主存储器中访问正确的存储器地址.

我知道这很粗糙,但它只是让你知道我正在寻找什么样的答案.

(编者注:从OP后来的评论中,他了解地址计算需要花费一些时间,并且只是想知道之后会发生什么.)

hardware arrays ram assembly random-access

20
推荐指数
3
解决办法
5431
查看次数

如何在Windows cmd终端中设置cd命令的默认目录?

cmd命令cd将我带到一个我从未花费的目录.

我希望它C:\Users\Kacy\Documents\默认带我去.

不幸的是,set cd = C:\Users\Kacy\Documents\不起作用.

有没有一种简单的方法可以在cmd终端中更改此设置?

cmd cd windows-8

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

在局部性方面的数组与链接列表

假设我们有一个未排序的数组和链表.搜索两个数据结构的元素时最糟糕的情况是O(n),但我的问题是:

由于在缓存中使用空间局部性,阵列是否仍然会更快,或者缓存是否会使用分支局部性,从而允许链接列表与任何阵列一样快?

我对数组的理解是,如果访问一个元素,那么该存储器块和许多周围的块将被带入高速缓存,从而允许更快的存储器访问.

我对链表的理解是,由于遍历列表所采用的路径是可预测的,因此缓存将利用它并仍然存储适当的内存块,即使列表中的节点在堆内可能相距很远.

arrays caching linked-list data-structures localityofreference

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

为什么变量名称"$ scope"是必需的?

我是Javascript的新手(刚刚完成了Eloquent Javascript这本书),目前正在阅读O'Reilly的AngularJS.从书中获取这些小代码片段让我疯了几个小时,让我陷入了兔子洞,以为我在设置环境时搞砸了.AngularJS书中提供的代码与我输入的代码的唯一区别在于我在TextController函数中省略了"$ scope"中的'$'.将'$'放回去允许代码工作.

这是我最初抛弃它的原因:哦,'$ scope'只是函数本地的变量名.像任何其他编程语言(如Java或C++)一样,因为这个参数只是一个局部变量,我可以将它命名为我想要的任何名称,因为传递给函数的任何参数都将通过值传递.

请更正我的推理并解释为什么参数的名称必须是"$ scope".

<!doctype html>
<html ng-app>

<body ng-controller="TextController">

  <p>{{someText}}</p>

  <script src="angular.min.js"></script>

  <script>
    function TextController($scope) {
      $scope.someText = 'You have started your journey.';
    }
  </script>

</body>

</html>
Run Code Online (Sandbox Code Playgroud)

javascript angularjs

10
推荐指数
2
解决办法
167
查看次数

Android:是否保证在finish()之后调用onPause()?

无法在任何地方找到可靠的答案.我有一个方法,其中调用finish(),然后调用onPause().

是否保证在调用finish()后调用onPause()?

java android

9
推荐指数
2
解决办法
6578
查看次数

为什么改变身体的背景颜色会改变整个页面的背景?

我使用以下代码记录了高度和填充值:

jQuery( document ).ready( function() {

    console.log( jQuery('body').css('height') );
    console.log( jQuery('body').css('padding-top') );
    console.log( jQuery('body').css('padding-bottom'));

}); //end ready
Run Code Online (Sandbox Code Playgroud)

这输出:

20px
0px
0px
Run Code Online (Sandbox Code Playgroud)

如果正文的高度只有20像素,那么当我使用这个CSS时,为什么浏览器的整个背景会变黑:

body {
    background: black;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Chrome作为我的浏览器.如果你对我如何遇到这个问题感到好奇,我遇到了一个问题,即由于身体的默认高度而向身体添加一个似乎没有发射的点击事件.

javascript css jquery

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

即使使用连接池后如何处理太多并发连接?

脚本

假设您有一个拥有大量流量的网站或应用.即使使用数据库连接池,性能也会受到重创(网站/应用甚至可能会崩溃),因为并发连接太多了.

处理这个问题的人有什么选择?

我的想法

我认为有这个问题的人可以创建多个数据库(可能在不同的机器上,虽然我不确定是否有必要),每个数据库都有相同的信息并同时更新,这将授予原始连接数的倍数单个数据库.但是,如果数据库很大,似乎不是一个非常可行的解决方案.

mysql database postgresql concurrency database-connection

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

Vueify:'import'和'export'可能只出现'sourceType:module'

我正在使用Vue.这就是我在gulpfile中构建的方式:

browserify('./main.js')
.transform(vueify)
.bundle()
.pipe( fs.createWriteStream('./build/bundle.js') );
Run Code Online (Sandbox Code Playgroud)

问题是vueify不处理我的.js文件中的es6导出.它只适用于.vue组件.它可以使用module.exports,但我想利用我的.js文件中的es6代码.

bundle()调用时,我目前收到错误:

'import' and 'export' may appear only with 'sourceType: module'

有没有办法修改gulp文件来使用我的.vue组件导入的es6来处理js文件?

babel browserify ecmascript-6 gulp vue.js

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

将Serializable数组从一个活动传递到另一个活动时的类Cast Exception

我有一个包含可序列化对象的数组,我试图使用Intent的putExtra()和Bundle的getSerializable().但是,我得到一个类强制转换异常并且不明白为什么.

下面是代码.UserInfo是我自己的类,它实现了Serializable,我能够在活动之间传递单个UserInfo对象.我在尝试使用数组时遇到了这个问题.

发送序列化的代码:

Intent intent = new Intent( JOIN_GROUP ); //JOIN_GROUP is a constant string

String user_ids[] = packet.userIDs();

int length = user_ids.length;
UserInfo users[] = new UserInfo[length];

for ( int i = 0; i < length; ++i )
    users[i] = getUserByID( user_ids[i] );

intent.putExtra( USERS_IN_GROUP, users );
Run Code Online (Sandbox Code Playgroud)

检索序列化的代码:

Bundle extra = intent.getExtras();          
String action = intent.getAction();

if ( action.equals(IMService.JOIN_GROUP) )
{   
    //CLASS CAST EXCEPTION
    UserInfo users[] = (UserInfo[]) extra.getSerializable( IMService.USERS_IN_GROUP ); 
}
Run Code Online (Sandbox Code Playgroud)

这是错误:

在此输入图像描述

我知道我可能只是使用不同的数据结构,但我想理解为什么数组不可行,因为数组是可序列化的?

编辑: SnyersK能够得到一个更简单但类似的方案来工作.所以我尝试了同样的事情,我仍然得到同样的例外.在检索数组时,它将我的测试数组转换为Object,这导致了转换异常.

我的测试对象:

package …
Run Code Online (Sandbox Code Playgroud)

java arrays serialization android

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

找不到GLIBCX_3.4.21

如果这不是正确的地方,我道歉,但在处理同样的错误2天后,我希望有人能得到答案.

我试图使用节点模块zerorpc,它使用zmq,但是,当尝试运行一个小例子时,我收到以下错误:

Error: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by myFilepath/node_modules/zmq/build/Release/zmq.node)
Run Code Online (Sandbox Code Playgroud)

我正在使用AWS提供的amazon linux实例(亚马逊网络服务).执行a后sudo yum update,最新版本为GLIBCXX_3.4.19.我使用以下命令检查:

strings /usr/lib64/libstdc++.so.6.19 | grep GLIBCXX
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
Run Code Online (Sandbox Code Playgroud)

最初,我使用了这个错误brew install zmq,所以我卸载它并尝试按照zeromq网站的说明安装zmq :

git clone https://github.com/zeromq/libzmq
./autogen.sh && ./configure && make -j 4
make check && make install && sudo ldconfig
Run Code Online (Sandbox Code Playgroud)

我对这些说明的唯一区别是我单独运行它们而不是使用它&&,并且我在每个指令前添加了sudo.我也在export LD_LIBRARY_PATH=/usr/local/lib运行之前执行了.

然后我做了npm install zerorpc --save.当然,我收到了同样的错误,所以我卸载了zerorpc,做了一个make clean,并开始了所有的步骤,除了这次我将configure指令更改为sudo ./configure CXX=/usr/bin/g++ CC=/usr/bin/gcc.而且,我收到了同样的错误.

希望有人有一个建议.我真的不想尝试从源代码编译一个更新的gcc版本,因为我知道这只会是新一轮的麻烦.

linux gcc zeromq zerorpc

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