小编Evg*_*zin的帖子

如何使程序NUMA准备好?

我的程序使用共享内存作为数据存储.此数据必须可供任何正在运行的应用程序使用,并且必须快速获取此数据.但是一些应用程序可以在不同的NUMA节点上运行,并且对它们的数据访问非常昂贵.每个NUMA节点的数据重复是唯一的方法吗?

language-agnostic numa

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

Symfony基本翻译示例

我是Symfony2的新手.试图建立翻译服务.我遵循官方文档中给出的步骤.但没有成功.

以下是步骤

  1. 在"symfony/app/config/config.yml"翻译服务中定义语言环境 "#translator:{ fallback: %locale% }"

  2. 'symfony/app/config/parameters.yml'定义的区域设置参数中"locale:de"

  3. 'src/MyBundle/translateBundle/Resources/translations/messages.de.xlf'创建中

    <?xml version="1.0"?>
    <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
    <file source-language="en" datatype="plaintext" original="file.ext">
        <body>
            <trans-unit id="1">
                <source>Symfony2 is great</source>
                <target>J'aime Symfony2</target>
            </trans-unit>
        </body>
    </file>
    </xliff>    
    
    Run Code Online (Sandbox Code Playgroud)

现在我希望这个编码现在我应该得到:'J'aime Symfony2'执行下面的代码.

<?php

namespace MyDays\translateBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Response;

class DefaultController extends Controller {
    public function indexAction() {
        $t = $this->get ( 'translator' )->trans ( 'Symfony2 is great' );        
        return new Response ( $t );
    }
}
Run Code Online (Sandbox Code Playgroud)

但仍然把原始文本称为'Symfony2很棒'!除了文档中给出的步骤之外,还有什么必须做的吗?

service translation symfony

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

Go中的LIFO容器

我需要使用带有推送和弹出操作的LIFO堆栈容器,但是container包没有.是应该由每个程序员临时写入,还是有办法将其他数据结构用作堆栈(如python中的list)?

go

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

在大内存映射文件中搜索

我有一个大型数据结构存储在内存映射文件中.数据结构非常简单:

struct Header {
    ...some metadata...
    uint32_t index_size;
    uint64_t index[]
};
Run Code Online (Sandbox Code Playgroud)

这个头部放在文件的开头,它使用了一个结构hack - 可变大小的结构,最后一个元素的大小不是一成不变的,可以改变.

char* mmaped_region = ...;  // This memory comes from memory mapped file!
Header* pheader = reinterpret_cast<Header*>(mmaped_region);
Run Code Online (Sandbox Code Playgroud)

内存映射区域以HeaderHeader :: index_size 开头,Header :: index_size包含Header :: index数组的正确长度.这个数组包含数据元素的偏移量,我们可以这样做:

uint64_t offset = pheader->index[x];
DataItem* item = reinterpret_cast<DataItem*>(mmaped_region + offset);
// At this point, variable item contains pointer to data element
// if variable x contains correct index value (less than pheader->index_size)
Run Code Online (Sandbox Code Playgroud)

对所有数据元素进行排序(少于为数据元素定义的关系).它们存储在与Header相同的内存映射区域中,但从结尾开始.数据元素无法移动,因为它们的大小可变,而不是 - 在排序过程中会移动标题中的索引.这与现代数据库中的B-tree页面非常相似,索引数组通常称为间接向量.

搜索

使用插值搜索算法(具有有限的步骤量)并且使用二进制搜索来搜索该数据结构.首先,我有一个完整的index数组要搜索,我正在尝试计算 - …

c++ algorithm io optimization search

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

如何更新 PostgreSQL 中的大量行?

我需要更新表中的数千行。例如,我有 1000 行,id 为 - 1, 2.. 1000:

mytable:
| id   | value1 | value2 |
|  1   |  Null  |  Null  |
|  2   |  Null  |  Null  |
...
| 1000 |  Null  |  Null  |
Run Code Online (Sandbox Code Playgroud)

现在我需要更改前 10 行。我可以这样做:

UPDATE mytable SET value1=42, value2=111 WHERE id=1
...
UPDATE mytable SET value1=42, value2=111 WHERE id=10
Run Code Online (Sandbox Code Playgroud)

这需要很多请求,而且速度不是很快,所以我决定进行此优化:

UPDATE mytable SET value1=42  WHERE id in (1, 2, 3.. 10)
UPDATE mytable SET value2=111 WHERE id in (1, 2, 3.. 10)
Run Code Online (Sandbox Code Playgroud)

注意 …

postgresql query-optimization

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

为什么F#中的函数以这种方式实现?

F#函数与普通CLR方法有很大不同,因为支持currying.例如功能

let inc a = a + 1
Run Code Online (Sandbox Code Playgroud)

会有类型Microsoft.FSharp.Core.FSharpFunc<int,int>.它会产生C#互操作性问题.必须专门设计函数才能从C#轻松调用.

这个设计背后的理由是什么?我相信原因在于支持.但是可以使用闭包来实现currying.例如这段代码:

let add a b = a + b
let inc = add 1
Run Code Online (Sandbox Code Playgroud)

可以通过编译器轻松转换为:

let add a b = a + b
let inc = fun x -> add 1 + x
Run Code Online (Sandbox Code Playgroud)

在这种情况下,add和inc都可以是普通System.Func对象.我相信这个设计决定背后有一些有趣的原因.

f#

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

golang中最灵活的函数签名

我的代码中有对象初始值设定项,它显式初始化对象的每个字段。但就我而言,大多数参数都有合理的默认值,我想使用它们。

在Python中,我通常使用关键字参数或默认值的组合,并且我的__init__方法包含一些验证逻辑,因此我可以在对象初始化中使用零配置原则。例如:

class Foo:
    """This class designed to show zero configuration
    principle in action"""
    def __init__(self, mandatory, optional=None, **kwargs):
        self.__field1 = mandatory
        self.__field2 = optional or make_default2()
        if 'bar' in kwargs:
            self.__field3 = kwargs['bar']
        else:
            self.__field3 = make_default3()


f = Foo('mondatory', bar=Bar())
Run Code Online (Sandbox Code Playgroud)

Go 中没有带默认值的参数,也没有关键字参数或函数重载。因此,编写灵活的初始化代码很困难(我通常不太关心此类代码的性能)。我想找到在 Go 中编写此类代码的最惯用的方法。也许运行时类型反射和映射的某种组合可以完成这项工作,您认为怎么样?

go

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

Golang:无法使用lzw包解压缩数据

我正在尝试使用Go创建压缩字符串池.这是我的代码 - http://play.golang.org/p/T5usLfU0fA

我无法解压缩使用compress/lzw包压缩的bin.lzw.Writer的输入是[104 101 108 108 111 32 119 111 114 108 100],并且lzw.Reader的输出是[0 1 0 0 3 0 3 3 2 0 0].他们肯定不匹配.

我正在创建具有相同参数的读写器(除缓冲区之外的所有参数).lzw.Reader的缓冲区包含以前使用lzw.Writer压缩的数据.

go lzw

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