小编Chr*_*ebb的帖子

反应性扩展似乎非常缓慢 - 我做错了什么?

我正在评估Rx是否需要每秒处理数千条消息的交易平台项目.现有平台具有复杂的事件路由系统(多播委托),它响应这些消息并执行大量后续处理.

我已经看过Reactive Extensions的显而易见的好处,但发现它有点慢,通常慢100倍.

我已经创建了单元测试来演示这个,它运行一个简单的增量100万次,使用各种Rx风格和直接开箱即用的委托"控制"测试.

结果如下:

Delegate                                 - (1000000) - 00:00:00.0410000
Observable.Range()                       - (1000000) - 00:00:04.8760000
Subject.Subscribe() - NewThread          - (1000000) - 00:00:02.7630000
Subject.Subscribe() - CurrentThread      - (1000000) - 00:00:03.0280000
Subject.Subscribe() - Immediate          - (1000000) - 00:00:03.0030000
Subject.Subscribe() - ThreadPool         - (1000000) - 00:00:02.9800000
Subject.Subscribe() - Dispatcher         - (1000000) - 00:00:03.0360000
Run Code Online (Sandbox Code Playgroud)

如您所见,所有Rx方法都比委托等效方法慢约100倍.很显然,Rx在一个更复杂的例子中会有很多用处,但这看起来非常慢.

这是正常的还是我的测试假设无效?下面的Nunit代码 -

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;
using NUnit.Framework;
using System.Concurrency;

namespace RxTests
{
    [TestFixture]
    class ReactiveExtensionsBenchmark_Tests
    {
        private int counter = 0;

        [Test] …
Run Code Online (Sandbox Code Playgroud)

.net c# system.reactive

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

如何将文本与不均匀图标对齐?

我试图在这个图像中居中对齐文本,理想情况下使用尽可能少的CSS/HTML.如您所见,左侧的图标将其推离中心:

对齐问题

以下是此顶部的相关HTML和CSS:

<div class="navbarheader">
    <div class="header-left">
        <button type="button" class="pull-left btn-nav-menu">
            <i class="navbar-text fa fa-fw fa-navicon"></i>
        </button>
        <button type="button" class="pull-left" ng-click="ui.showSearch()">
            <i class="navbar-text fa fa-fw fa-search"></i>
        </button>
    </div>
    <div class="header-title">
        <div class="navbar-brand">{{ui.headerTitle}}</div>
    </div>
    <div class="header-right">
        <button class="btn-watchlist pull-right" ng-click="ui.toggleWatchlists()">
            <i class="navbar-text fa fa-fw fa-binoculars"></i>
        </button>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

CSS:

.navbarheader {
  display: flex;
  flex-direction: row;
  justify-content: space-around;
}
.navbarheader .header-left {
  margin-left: -0.5rem;
}
.navbarheader .header-title {
  flex-grow: 2;
  text-align: center;
}
.navbarheader .header-right {
  margin-right: -0.5rem;
}
Run Code Online (Sandbox Code Playgroud)

任何想法如何保持文本中心对齐,但如果有必要允许它占据所有空白?

值得一提的是Bootstrap 4.0 alpha代码库.

html css flexbox twitter-bootstrap

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

FineUploader:更改固定ACL值时的S3访问被拒绝响应

我有一个S3 Fine Uploader实现工作得很好.默认情况下,它上传文件很好,但它们是私有的.基于FineUploader的文档,我将如下的objectProperties选项添加到我的客户端js config中,以便FineUploader将文件公开:

    objectProperties: {
        acl: "public-read"
    },
Run Code Online (Sandbox Code Playgroud)

但是我现在在上传期间从s3获得访问被拒绝的响应:

<Error><Code>AccessDenied</Code><Message>Access Denied</Message>
<RequestId>(removed)</RequestId>
<HostId>(removed)</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)

如果有帮助,这是我的CORS Bucket Policy:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedMethod>DELETE</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <ExposeHeader>ETag</ExposeHeader>
        <AllowedHeader>content-type</AllowedHeader>
        <AllowedHeader>origin</AllowedHeader>
        <AllowedHeader>x-amz-acl</AllowedHeader>
        <AllowedHeader>x-amz-meta-qqfilename</AllowedHeader>
        <AllowedHeader>x-amz-date</AllowedHeader>
        <AllowedHeader>authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)

这是请求的原始HTTP转储:

Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-GB,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:39643
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryR70e49pqaNEGSsT1
Host:quickfunnel.s3.amazonaws.com
Origin:http://mysite.local
Referer:http://mysite.local/dashboard/
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Request Payload
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="key"

d50e0c4f-1886-48bb-b077-075fca79b6dc.JPG
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="AWSAccessKeyId"

ACCESS-KEY-REMOVED
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: form-data; name="Content-Type"

image/jpeg
------WebKitFormBoundaryR70e49pqaNEGSsT1
Content-Disposition: …
Run Code Online (Sandbox Code Playgroud)

amazon-s3 fine-uploader

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

如何确定IObservable <T>上有多少/清除订户?

我想知道是否有办法弄清楚有多少观察者订阅了IObservable对象.

我有一个管理HashTable的过滤IObservable实例的类,我想实现一个"健康检查"例程,可以确定订阅者是否已被删除/处置,而每个订阅者都不必明确通知此类他们'完成(即应通过Dispose()或Unsubscribe()隐式).

这并没有真正回答这个问题 -

应该-I-使用-listiobserver或 - 简Actiont就是对保跟踪的-AN-的IObservable

任何想法Rx专家?

c# system.reactive

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

我如何从IObservable获取历史记录?

我通过Observable监控股票报价流,我认为它符合某种条件,例如 -

Observable
.Empty<Quote>
.Where(q => q.Price > watchPrice)
.Subscribe(q => { // do stuff } );
Run Code Online (Sandbox Code Playgroud)

现在,在"做东西"的时候,我理想的是得到最后3个"q"来自where子句,所以有点像BufferWithCount(),但每个条目都包含Subscribe()包含最后3个条目.这样我就可以保存导致条件评估的报价更改的快照.

伪大理石图 -

in  -  a     b     c     d     e     f
out -  a     ba    cba   dcb   edc   fde
Run Code Online (Sandbox Code Playgroud)

任何想法都赞赏

c# system.reactive

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

Javascript正则表达式适用于某些字符之间的所有单词

我试图返回方括号之间的所有单词的计数.所以......

[don't match these words] but do match these
Run Code Online (Sandbox Code Playgroud)

我在最后四个单词中得到4分.

这适用于.net:

\b(?<!\[)[\w']+(?!\])\b
Run Code Online (Sandbox Code Playgroud)

但它不适用于Javascript,因为它不支持lookbehind

纯js正则表达式解决方案的任何想法?

javascript regex

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