小编rea*_*jin的帖子

关于epoll_ctl()

当使用epoll_ctl()时,我发现第三个参数"fd"是epoll文件描述符"epfd"之外的另一个文件描述符.我看到了这样一个例子:

event.data.fd = sfd; //sfd is a fd for listening
event.events = EPOLLIN | EPOLLET;
s = epoll_ctl (efd, EPOLL_CTL_ADD, sfd, &event);
Run Code Online (Sandbox Code Playgroud)

正如我所看到的,event.data.fd中的文件描述符与epoll_ctl中的第三个参数相同,为什么需要两次传递这个描述符?有什么不同吗?

c sockets epoll

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

Redis与Cassandra(Bigtable数据模型)

假设我需要密集地执行以下操作:
put(key, value)
其中value是<column name,column value>的映射.
我不知道NoSQL很长时间,我所知道的是Cassandra插入(符合Bigtable论文中定义的api)和Redis"HSET"命令都可以做到.但这两种方式的优点和缺点是什么?那里有任何性能和可扩展性差异吗?

编辑:

我的要求类似于IM服务器---我需要存储会话数据,我希望它们都存储在内存中,以便轻松实现低延迟.会议持续最多2个小时.尚未考虑一致性要求.磁盘仅用于故障转移.丢失的数据并不可怕.我只需要更低的延迟.每秒操作---越多越好.

bigtable cassandra nosql redis

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

如何在 Actix-Web 中返回已配置的应用程序?

我正在使用 actix-web 创建一个嵌入状态/数据的 httpserver。但 vscode 告诉我该create_app函数的返回值类型定义中有错误的参数App<AppState>

pub struct App<T, B>
wrong number of type arguments: expected 2, found 1
expected 2 type argumentsrustc(E0107)
Run Code Online (Sandbox Code Playgroud)

应用程序.rs:

use crate::api;
use crate::model::DbExecutor;
use actix::prelude::Addr;
use actix_web::{error, http::Method, middleware::Logger, web, App, HttpResponse};

pub struct AppState {
    pub db: Addr<DbExecutor>,
}

pub fn create_app(db: Addr<DbExecutor>) -> App<AppState> {
    App::new().data(AppState { db }).service(
        web::resource("/notes/").route(web::get().to(api::notes))
    );
}
Run Code Online (Sandbox Code Playgroud)

主要.rs:

fn main() {
    HttpServer::new(move || app::create_app(addr.clone()))
        .bind("127.0.0.1:3000")
        .expect("Can not bind to '127.0.0.1:3000'")
        .start();
}
Run Code Online (Sandbox Code Playgroud)

由于“service”方法的返回类型是“Self”,类型为 actix_web::App,我尝试将返回类型修改为 …

rust actix-web

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

高性能rtsp服务器

我想实现一个高性能的rtsp服务器来处理vod请求---它只处理信令请求,它不需要流媒体文件.我已经完成了基于Mina网络框架的用Java编写的版本,并且性能似乎不是很高.

据我所知,高性能SIP服务器(例如VoIP服务器)是用C语言编写的(例如OpenSIPS,Kamailo),我应该在项目中使用C或C++来获得显着的性能提升吗?

BTW.我找到了其作者用C语言编写OpenSER的原因的一些解释:"另一方面,在Java中开发SIP应用程序时,垃圾收集器可能会造成很多麻烦.用Java编写的大量加载的服务器会停止工作垃圾收集器正在清理内存.垃圾收集器造成的延迟甚至可能超过10秒.这种延迟是不可接受的"现在这是否意味着我也应该使用C?

c java jvm sip rtsp

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

在perl中没有参数的分裂

我是perl的新手,我想知道这行代码是什么意思?

($q,$dummy, $d,$v) = split;
Run Code Online (Sandbox Code Playgroud)

我搜索谷歌,但我没有找到使用拆分没有参数的解释,这种用途是否与"while"块有关?

完整的代码片段是:

open(T,"$opt_judgments") ||  die "can't open judgment file: $opt_judgments\n";
while (<T>) {
  if ($opt_trec) {
    ($q,$dummy, $d,$v) = split;
  } else {
    ($q,$d,$v) = split;
  }
  $dict{$q ."=".$d} =$v;
  if ($v != 0) {
    $totalRels{$q} ++;
  }
}
Run Code Online (Sandbox Code Playgroud)

perl

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

如何引用其他.jsx文件中定义的组件

我是新手,我正在电子项目中使用它.我使用以下语法分别在a.jsx和b.jsx中定义了组件A和B.

  //a.jsx    
  'use babel';
  import React from 'react';
  export class A extends React.Component {
    render() {
      return (
        <div>some text</div>
      );
    }
  }

  //b.jsx   
  'use babel';
  import React from 'react'; 
  export class B extends React.Component {
    render() {
      return (
        <div>
          <A />
        </div>
      );
    }
  }
Run Code Online (Sandbox Code Playgroud)

我在html页面中渲染它们:

<!-- index.html -->
<script>
var a = require('./a.jsx');
var b = require('./b.jsx');
React.render(React.createElement(b.B, null), document.body);
</script>
Run Code Online (Sandbox Code Playgroud)

我怎样才能从组件B中引用组件A(例如在B的渲染函数中使用A标签,如上面b.jsx中所示)?我试过添加:

import A from './a.jsx'
Run Code Online (Sandbox Code Playgroud)

但得到了错误:

Uncaught Error: Invariant Violation: Element type …
Run Code Online (Sandbox Code Playgroud)

reactjs

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

为什么很多nosql商店都是用java编写的?

据我所知,许多nosql商店都是用java编写的,例如HBase,Cassandra.但根据我的经验,许多高性能服务器程序都是用c/c ++编写的(例如Apache,Opensips等),为什么这样的java实现程序在生产中运行良好呢?是因为Java代码易于阅读并维护和分布式系统在java中实现好吗?

顺便说一句,我知道用Java编写代码肯定会更有效率,但正如有人所说,实现速度不是大公司的问题,因为一旦实施和重构几轮,程序运行得很好,所以时间成本从长远来看并不高.

c c++ java cassandra nosql

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

redis中的内存分配

在浏览了Redis的一些代码之后,我注意到"robj"的创建是通过调用"createObject"函数完成的,该函数又调用"malloc"来分配内存.因此,每当请求到来时(例如SET uid 1234),将存在内存分配过程.

我的问题是,为什么不预先分配空间来减少内存分配成本?因为物体尺寸不同?

redis

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

我应该将分类输出转换为整数吗?如何转换?

我正在使用神经网络对文本进行分类,训练数据的标签是0或1(即二元分类)。它在训练和评估过程中效果很好,但预测输出是浮点值而不是整数0或1。我怎样才能总是得到整数结果?我需要手动转换它们或更改网络参数吗?

model = Sequential()
e = Embedding(vocab_size, embedding_dim, weights=[embedding_matrix], 
input_length=max_length, trainable=False)
model.add(e)
model.add(Dropout(0.2))
model.add(Flatten())
model.add(Dense(1, activation='sigmoid'))

# compile
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['acc'])
print(model.summary())

# fit
model.fit(padded_docs, labels, epochs=5, verbose=2)

# eval
loss, accuracy = model.evaluate(padded_docs, labels, verbose=0)
print('Accuracy: %f' % (accuracy*100))

# predict
result = model.predict(padded_docs_test, verbose=2)
Run Code Online (Sandbox Code Playgroud)

nlp machine-learning tensorflow

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

标签 统计

c ×3

cassandra ×2

java ×2

nosql ×2

redis ×2

actix-web ×1

bigtable ×1

c++ ×1

epoll ×1

jvm ×1

machine-learning ×1

nlp ×1

perl ×1

reactjs ×1

rtsp ×1

rust ×1

sip ×1

sockets ×1

tensorflow ×1