小编Jas*_*ker的帖子

如何确定选择哪种树数据结构?

好的,所以这总是困扰着我.我知道的树数据结构是:

  • 不平衡的二叉树
  • AVL树
  • 红黑树
  • 2-3棵树
  • B树
  • B* - 树
  • 尝试

如何确定哪种树是最适合工作的工具?显然,堆被规范地用​​于形成优先级队列.但其余的人似乎只是做同样事情的不同方式.有没有办法选择最适合这份工作的?

tree data-structures

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

ASP.NET MVC替代品?

所以,我花了足够的时间使用ASP.NET webforms来了解我几乎要回到做经典的ASP而不是使用它们.但是我很犹豫要转向ASP.NET MVC,直到它变得更加成熟.有没有开源替代品?

我正在寻找的主要内容是易于学习和使用原型的原型.如果它有任何帮助,我的主要偏好是python"混合搭配"方法(比如说web.py/SQLAlchemy/whatever模板引擎适合我当时的喜好).

asp.net-mvc open-source webforms

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

左外连接在两列性能问题上

我正在使用类似于以下形式的SQL查询:

SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
AND table1.period = table2.period
Run Code Online (Sandbox Code Playgroud)

而且它要么太慢,要么死机,因为它至少需要4分钟才能返回.如果我要将其更改为:

SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.person_uid = table2.person_uid
WHERE table1.period = table2.period
Run Code Online (Sandbox Code Playgroud)

然后它工作正常(尽管没有返回正确数量的列).有什么方法可以加快速度吗?

更新:如果我切换后一个查询的最后两行,它会做同样的事情:

SELECT col1, col2
FROM table1
LEFT OUTER JOIN table2
ON table1.period = table2.period
WHERE table1.person_uid = table2.person_uid
Run Code Online (Sandbox Code Playgroud)

更新2: 这些实际上是我加入的观点.不幸的是,它们位于我无法控制的数据库上,因此我无法(轻松)对索引进行任何更改.我倾向于同意这是一个索引问题.我会等一会儿才接受答案,以防有一些神奇的方法来调整我不知道的查询.否则,我会接受当前的答案之一,并尝试找出另一种方法来做我想做的事情.感谢大家的帮助到目前为止.

sql oracle join left-join oracle10g

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

如何加速Oracle中的row_number?

我有一个SQL查询,看起来像这样:

SELECT * FROM(
    SELECT
        ...,
        row_number() OVER(ORDER BY ID) rn
    FROM
        ...
) WHERE rn between :start and :end
Run Code Online (Sandbox Code Playgroud)

从本质上讲,正是ORDER BY部分减慢了速度.如果我要删除它,EXPLAIN成本会下降一个数量级(超过1000倍).我试过这个:

SELECT 
    ...
FROM
    ...
WHERE
    rownum between :start and :end
Run Code Online (Sandbox Code Playgroud)

但这并没有给出正确的结果.有没有简单的方法来加快速度?或者我是否需要花更多时间使用EXPLAIN工具?

sql oracle row-number oracle10g

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

有没有办法以编程方式生成Python字节码?

我想破解Python解释器并尝试创建一个小型DSL.是否有任何模块我可以做这样的理论代码(类似于LINQ表达式树)?

expression_tree = Function(
    Print(
        String('Hello world!')
    )
 )
compile_to_bytecode(expression_tree)
Run Code Online (Sandbox Code Playgroud)

或者只是更容易生成Python源代码?使用C或SWIG或Cython可以使这更容易吗?

python dsl bytecode abstract-syntax-tree expression-trees

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

为什么这个OCaml程序比我的C程序更快?

我用C,Python和OCaml 编写了一个基本的Hippity Hop程序.当然,这可能不是这三种语言的非常好的基准.但我得到的结果是这样的:

  • Python:.350秒
  • C:.050秒
  • 解释 OCaml:.040秒
  • 编译OCaml:.010

python性能并没有让我感到惊讶,但我对OCaml的速度感到震惊(尤其是解释版本).为了比较,我将发布C版本和OCaml版本.

C

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

long get_count(char *name);

int main(int argc, char *argv[])
{
  if (argc != 2){
    printf("Filename must be specified as a positional argument.\n");
    exit(EXIT_FAILURE);
  }

  long count_no = get_count(argv[1]);

  int i;
  for (i = 1; i <= count_no; i++){
    if (((i % 3) == 0) && ((i % 5) == 0)){
      printf("Hop\n");
      continue;
    }
    if ((i % 3) == 0){
      printf("Hoppity\n");
    }
    if ((i …
Run Code Online (Sandbox Code Playgroud)

c performance ocaml

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

Python的GIL与垃圾收集器有什么关系?

我刚刚看到Unladen Swallow的这一部分文档出现在Hacker News上.基本上,谷歌工程师说他们对删除GIL并不乐观.然而,似乎有关于垃圾收集器的讨论穿插在这个关于GIL的讨论中.有人可以向我解释这种关系吗?

python garbage-collection unladen-swallow gil

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

如何计算哈希(无)?

在我的机器上,hash(None)返回一个值:

>>> hash(None)
-2138947203
Run Code Online (Sandbox Code Playgroud)

出于好奇,这个哈希值是如何计算的?似乎这个值不是基于None's,id因为如果我重新启动Python解释器它是相同的.

python hash

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

如何在Python中确定打开文件的大小?

有一个文件,我想确保不会超过2 GB(因为它必须在使用ext 2的系统上运行).检查文件大小的好方法是什么,记住我将在两次检查之间写入此文件?特别是,我是否需要担心尚未写入磁盘的缓冲,未刷新的更改?

python linux filesystems file ext2

10
推荐指数
4
解决办法
9238
查看次数

有没有开源病毒?

关于programmers.se的一个问题让我想知道:有没有人发布过开源病毒?当然,我只是想知道病毒的源代码可能是什么样的好奇心.快速谷歌搜索显示有大量的开源防病毒程序,但我没有看到任何开源病毒.

open-source virus

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