小编use*_*ser的帖子

虚拟扩展方法?

我有一个在客户端应用程序和服务器应用程序中使用的类.在服务器应用程序中,我通过扩展方法向类添加了一些功能.效果很好.现在我想要更多:

我的班级(B)继承自另一个班级(A).

我想将一个虚函数附加到A(比如说Execute()),然后在B中实现该函数.但只在服务器中实现.Execute()方法需要使用只有服务器知道的类型才能完成只能在服务器上执行的操作.

有很多类型的继承自A,就像B一样,我想为它们中的每一个实现Execute().

我希望我可以为A添加一个虚拟扩展方法,但这个想法似乎没有飞过.无论有没有扩展方法,我都在寻找解决这个问题的最优雅的方法.

c# virtual extension-methods

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

重写Web应用程序的数据库设计

我们为客户提供的许多LOB应用程序具有营销/促销性质(抽奖活动,活动注册等).大多数应用程序虽然非常简单,但对数据库要求很高.想象一下,"注册"型网站作为在超级碗期间播出的商业广告的支持,例如(是的,我们有几个).

虽然我们已经非常善于优化我们的Web应用程序代码,但数据库始终是一个问题,尽管应用程序相对简单.流程通常类似于:

  1. 从数据库读取以检测现有记录
  2. 如果记录是新的,写入数据库

在许多情况下,这是我们的应用程序需要执行的所有数据访问.但是,鉴于它是应用程序的唯一目的,因此对这个简单的过程进行大大优化非常重要.

出于这个问题的目的,我们有一台服务器为数据文件运行raid 5磁盘阵列,为日志运行另一个raid 5阵列.此时,操作系统是Windows 2003标准32位,服务器有4 GB内存.一些应用使用SQL 2005标准,而其他应用使用MySQL 5.1.我非常清楚这里可以进行某些操作系统和硬件优化,但我希望首先从软件方面解决我的需求.广泛的分析告诉我们,磁盘IO通常是主要的瓶颈.

说了这么多,并且知道缓存不会有多大帮助,因为大多数读取都是唯一的并返回非常少的数据(通常只是指示记录是否存在),我正在考虑进入一个领域. -memory数据库作为真实数据库的写缓存层.这似乎是一个很好的选择,因为我们的大部分高流量流量本质上是零星的,并且不会持续数小时.此外,在大多数情况下,由于服务器崩溃可能会丢失几分钟的数据.

在最简单的形式中,我会修改一个典型的注册应用程序来执行以下操作:

  1. 查询磁盘DB和内存DB以查找现有记录
  2. 如果不是,则将数据写入内存DB并返回
  3. 定期将内存DB刷新到磁盘DB

我的问题是:这个中间内存数据库有哪些选择?我已经尝试了内存中的哈希表,数据表等,但我正在寻找其他选项,甚至是针对完全不同的方法的建议.

database-design data-modeling

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

在PostgreSQL中查找重叠的日期范围

它是否正确?

SELECT * 
FROM   contract 
JOIN   team USING (name_team) 
JOIN   player USING(name_player) 
WHERE  name_team = ? 
AND    DATE_PART('YEAR',date_join)>= ? 
AND    DATE_PART('YEAR',date_leave)<= ?
Run Code Online (Sandbox Code Playgroud)

我的桌子上contract有球员姓名,球队名称以及他加入和离开俱乐部的日期.
我想制作一个功能,列出特定年份团队中的所有玩家.
上面的查询似乎没有工作......

sql postgresql date-range overlap

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

将我的程序添加到右键菜单

右键单击菜单,我的意思是:我真的不知道它叫什么,但我希望它的右键菜单.

当我谷歌查询这个问题的标题时,我什么都没得到.一些教程,显示如何将.exe添加到该列表等但我正在寻找一些教程,将教我如何处理该数据,右键菜单将返回我,等等.但遗憾的是,我发现没有.所以我在这里,问......

如何将我的程序添加到该列表中,当我执行它返回给我的内容时,是否有任何相关的教程?

c# windows contextmenu right-click

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

如何使用O_DIRECT将内核空间内存(物理地址)写入文件?

我想为文件写一个物理内存.内存本身不会再被触摸,因此我想O_DIRECT用来获得最佳的写入性能.

我的第一个想法是打开/dev/mem并映射内存并将所有内容写入一个打开的文件O_DIRECT.写调用EFAULT在mmap返回的内存地址上失败().如果我不使用O_DIRECT,它会产生一个memcpy.

#include <cstdint>
#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdio.h>
#include <errno.h>
#include <malloc.h>
#include <sys/mman.h>

#define PRINT_ERRNO_REASON(reason)  \
        case reason: { std::cout << #reason << std::endl; } break;

void write_page_aligned_buffer(int out_fd)
{
    const ssize_t PAGE_SIZE = getpagesize();

    void* page_aligned_buffer = memalign(PAGE_SIZE, PAGE_SIZE);
    if(!page_aligned_buffer)
    {
        std::cout << "Could not allocate page aligned buffer." << std::endl;
        return;
    }

    std::cout << "Allocated a buffer …
Run Code Online (Sandbox Code Playgroud)

linux kernel kernel-module dma

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

OpenCL设备的唯一性

有没有办法让OpenCL给我一个列出所有具有OpenCL实现的独特物理设备?我知道如何遍历平台/设备列表但是,例如,在我的情况下,我有一个英特尔提供的平台,它为我的CPU提供了高效的设备实现,以及为我的GPU提供快速实现的APP平台但是我的CPU可怕的实现.

有没有办法解决这两个CPU设备实际上是同一个物理设备,这样我就可以选择最有效的设备并使用它,而不是同时使用它们并让它们相互竞争计算时间单个物理设备?

我已经看过CL_DEVICE_VENDOR_ID和CL_DEVICE_NAME,但他们不解决我的问题上,CL_DEVICE_NAME将是同一型号的两个单独的物理设备一样(双GPU的),并CL_DEVICE_VENDOR_ID给了我一个不同的ID为根据不同的平台上我的CPU.

一个理想的解决方案是某种独特的物理设备ID,但我很乐意手动更改OpenCL配置以自行重新排列设备(如果可能的话).

opencl

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

计算最节能的ad-hoc网络的算法

我有一个(理论上)网络,有N个节点,每个节点都有自己的固定位置.每个节点每个周期发送一条消息,需要直接或通过其他节点到达根节点.

从节点A向节点B发送消息的能量成本是它们之间的距离,平方.

挑战在于如何以树形格式链接这些节点以产生最节能的网络.

例如,有两种可能的方式来链接这些节点,左边的节点更节能.

我正在研究遗传算法来解决这个问题,但我想知道是否有人有任何其他想法,或者知道任何相关的开源代码.

编辑:网络的另一个方面,我忘了提到,每个节点都是电池供电的.因此,如果我们通过同一节点路由太多消息,那么该节点的电池将耗尽,导致网络出现故障.网络的能效是通过在任何节点电池耗尽之前可以从每个节点成功传输到根节点的消息来衡量的.

编辑#2:对于问题原始文本中的遗漏,我很抱歉.不管怎么说,你之前的一些答案并不是我想要的,但我不熟悉MST算法,所以感谢你告诉我它们.

为了让事情更清楚,让我补充一点:

所有节点每个周期发送一个自己的消息,包括内部节点.内部节点还负责中继它们收到的任何消息.这增加了电池的压力,如果他们发送了他们自己的附加信息.目标是在任何节点电池耗尽之前最大化循环次数.

algorithm treenode graph-theory energy

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

扩展方法与静态方法优先级

考虑以下程序:

class A
{
    public static void Foo()
    {
    }
}

static class Ext
{
    public static void Foo(this A a)
    {
    }
}

class Program
{
    static void Main(string[] args)
    {
        var a = new A();
        a.Foo();
    }
}
Run Code Online (Sandbox Code Playgroud)

这无法编译,错误如下:

无法使用实例引用访问成员'Test.A.Foo()'; 用类型名称来限定它

为什么编译器会忽略扩展方法?

c# extension-methods static-methods

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

试图从scipy powerlaw fit获得合理的价值

我正在尝试从我运行的模拟代码中拟合一些数据,以便找出幂律依赖性.当我绘制线性拟合时,数据不太适合.

这是我用来拟合数据的python脚本:

#!/usr/bin/env python
from scipy import optimize
import numpy

xdata=[ 0.00010851,  0.00021701,  0.00043403,  0.00086806,  0.00173611, 0.00347222]
ydata=[ 29.56241016,  29.82245508,  25.33930469,  19.97075977,  12.61276074, 7.12695312]

fitfunc = lambda p, x: p[0] + p[1] * x ** (p[2])
errfunc = lambda p, x, y: (y - fitfunc(p, x))

out,success = optimize.leastsq(errfunc, [1,-1,-0.5],args=(xdata, ydata),maxfev=3000)

print "%g + %g*x^%g"%(out[0],out[1],out[2])
Run Code Online (Sandbox Code Playgroud)

我得到的输出是:-71205.3 + 71174.5*x ^ -9.79038e-05

虽然在情节上,合体看起来和你期望的最小方形一样好,但输出的形式让我感到困扰.我希望常数接近你预期的零点(大约30).而且我期望找到比10 ^ -5更大的功率依赖性.

我已经尝试重新调整我的数据并使用参数来优化.leastsq没有运气.我正在努力实现的目标是什么,或者我的数据是不允许的?计算成本很高,因此获得更多数据点并非易事.

谢谢!

python numpy curve-fitting scipy least-squares

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

Java数组初始化保证

Java保证阵列初始化吗?

假设我使用代码char[] uuid = new char[36];,是否保证每个元素都被初始化为0?

java arrays initialization

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