小编Ric*_*o M的帖子

PHP - curl_exec挂起

我有一个奇怪的问题与下面的PHP函数.不幸的是,这是一个特殊的"仅生产"案例.

function requestPost($url, $data)
{
        set_time_limit(60);
        $output = array();
        $curlSession = curl_init();

        if($curlSession == false)
                syslog(LOG_INFO,"Falied to create a curl sessions");

        // Set the URL
        curl_setopt ($curlSession, CURLOPT_URL, $url);
        // No headers, please
        curl_setopt ($curlSession, CURLOPT_HEADER, 0);
        // It's a POST request
        curl_setopt ($curlSession, CURLOPT_POST, 1);
        // Set the fields for the POST
        curl_setopt ($curlSession, CURLOPT_POSTFIELDS, $data);
        // Return it direct, don't print it out
        curl_setopt($curlSession, CURLOPT_RETURNTRANSFER,1);
        // This connection will timeout in 30 seconds
        curl_setopt($curlSession, CURLOPT_TIMEOUT,30);
        //The next two …
Run Code Online (Sandbox Code Playgroud)

php apache curl libcurl

18
推荐指数
3
解决办法
9945
查看次数

Mysql - 将auto_increment添加到主键

我有一个奇怪的问题与mysql.

我试图改变一个表的列,这是一个主键,并在其上定义了auto_increment约束.这也是多个其他表的外键引用.我需要在父级和所有子级中更改此列的长度.

set foreign_key_checks=0;
alter table Parent  modify Identifier smallint(10) unsigned;
alter table Child_1 modify FK_Identifier smallint(10) unsigned;
alter table Child_2 modify FK_Identifier smallint(10) unsigned;
alter table Child_3 modify FK_Identifier  smallint(10) unsigned;
alter table Child_4 modify FK_Identifier smallint(10) unsigned;
alter table Child_5 modify FK_Identifier smallint(10) unsigned;
set foreign_key_checks=1;
Run Code Online (Sandbox Code Playgroud)

这将删除父表上的自动增量.添加约束的最佳方法是什么?

以下似乎都失败了.

mysql> ALTER TABLE Parent MODIFY Identifier smallint(10) PRIMARY KEY AUTO_INCREMENT;
ERROR 1068 (42000): Multiple primary key defined


ALTER TABLE Parent MODIFY Identifier smallint(10) AUTO_INCREMENT;
------------------------
LATEST FOREIGN KEY ERROR
------------------------ …
Run Code Online (Sandbox Code Playgroud)

mysql database foreign-keys auto-increment

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

什么是数据库吞吐量?

好吧,除了问题之外,没什么好问的.当你说OLTP DB必须具有高吞吐量时,你是什么意思.

去维基.

"在通信网络中,例如以太网或分组无线电,吞吐量或网络吞吐量是通过通信信道成功传递消息的平均速率.这些数据可以通过物理或逻辑链路传递,或通过某个网络节点传递.吞吐量通常以每秒位数(bit/s或bps)来衡量,有时以每秒数据包或每个时隙的数据包来衡量."

这是否意味着,OLTP数据库需要具有高/快插入率(即避免死锁等)?

如果我们把一个数据库说成航空业,我一直都会留下印象,它必须快速插入,但同时快速响应时间,因为它对它的操作至关重要.在许多方面,这不应该仅限于将消息/数据传递到数据库所涉及的协议吗?

我并不想要挑出OLTP系统的"唯一"特性.总的来说,我想了解一下,OLTP系统固有哪些特性.

干杯!

sql oracle database-design oltp

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

有状态的仿函数和STL:未定义的行为

我正在关注这个Function对象教程

复制面食如下:

我无法理解以下内容:

应始终将谓词实现为无状态函数对象,以避免意外结果.无法保证算法在内部复制谓词的频率.因此,具有作为有状态函数对象实现的谓词可能具有未执行的结果.

示例如下:

#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>

class predicate
{
public:
   predicate(int condition) :
      condition_(condition), state_(0) {}
   bool operator()(int) { return ++state_ == condition_; }

private:
   int condition_;
   int state_;
};

int main()
{
   std::vector<int> vec;
   vec.push_back(1);
   vec.push_back(2);
   vec.push_back(3);
   vec.push_back(4);
   vec.push_back(5);

   predicate p(2);
   std::vector<int>::iterator pos =
      std::remove_if(vec.begin(), vec.end(), p);
   vec.erase(pos, v.end());

   std::copy(vec.begin(), vec.end(),
             std::ostream_iterator<int>(std::cout, " "));

   return 0;
}
Run Code Online (Sandbox Code Playgroud)

如果我理解(读)它正确,它试图删除向量中标记为2的元素.remove_if算法返回容器的新端并尝试擦除所有容器.

输出:

1 3 5
Run Code Online (Sandbox Code Playgroud)

显然,不仅第二个元素被删除,第四个元素也被删除.这种好奇心的答案很简单,所使用的算法'remove_if'在执行期间在内部复制谓词.此内部副本创建一个包含其原始状态的新谓词对象.

虽然我可以阅读似乎正在发生的事情,但我无法想象幕后发生的事情,这实际上标记了即使要移动到容器末端的第4个元素.这与单程或多程算法有关吗?(如果有人能指出我正确的方向如何推断出同样的事情,我将不胜感激)

另外,如果我评论擦除并记下输出.

1 3 5 4 5
Run Code Online (Sandbox Code Playgroud)

导致容器损坏的原因是什么?

c++ stl functor

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

64位系统的优点

从开发人员的角度来看,我试图理解,64位系统的卖点是什么?

我知道可以使用更多寄存器,可以为进程分配更多内存,但我无法理解是什么让开发人员的生活变得更轻松.任何例子?

从性能的角度来看,如果一个程序运行在32位对64位上,会有什么好处吗?

干杯!

编辑:谢谢你的所有回复.我看到一些针对最终用户体验的对话,这很重要.我正在寻找更多可以挤出的建筑优势.

根据我的理解,看起来编译器 - 汇编程序链上的优化很多,而不是程序员可以调用的功能?

c++ architecture performance 64-bit cpu-architecture

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

低级别的套接字编程

我无法理解或掌握; 在套接字编程中在较低层编程意味着什么.我习惯使用tcp/udp /文件系统套接字.这些都包含在他们自己的协议规范中......据我所知,这将使它在堆栈中的应用层工作.

在我正在进行的项目中,我看到一些文件被"命名为"LinkLayer,TransportLayer ......但我没有看到除标准套接字调用之外的任何其他调用.... send/recv/seletct ...

您设置套接字选项的事实是否意味着您在较低级别进行编程?它仅限于此吗?或者是否有其他API授予您访问内核中的表示形式的权限?

c unix sockets

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

优先级倒置

我在理解优先级倒置时遇到问题

文章摘录:

考虑有一个任务L,优先级低.此任务需要资源R.考虑L正在运行并且它获取资源R.现在,还有另一个具有高优先级的任务H. 此任务还需要资源R.考虑H在L获得资源R之后开始.现在H必须等到L放弃资源R.

到目前为止,一切都按预期工作,但是在此期间新任务M以中等优先级启动时会出现问题.`由于R仍​​然在使用(由L),H无法运行.由于M是优先级最高的未阻塞任务,因此它将被安排在L之前.由于L已经被M抢占,L不能放弃R.所以M将一直运行直到它完成,然后L将运行 - 至少到达一个点它可以放弃R - 然后H会运行.因此,在上述场景中,具有中等优先级的任务在具有高优先级的任务之前运行,从而有效地给予我们优先级倒置.

这个问题与文章的第二部分有关.为什么具有H(较高)优先级的进程不能抢占具有L(较低)优先级的进程,但具有M(中等)优先级的进程可以先发制人?即如果在使用R之后H被阻止,为什么M也不被阻挡?

multithreading computer-science

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

Oracle完整提示

如果我正确理解文档 ; 完整提示应强制进行全表扫描.在下面的场景中,它没有执行相同的操作;

Num就像在其上创建的索引一样.

SQL> desc test;
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 NUM                                       NOT NULL NUMBER
 NUM2                                               NUMBER(10)
 NUM3                                               NUMBER
Run Code Online (Sandbox Code Playgroud)

查询:

select num from test;
Run Code Online (Sandbox Code Playgroud)

结果:

       NUM
----------
         1
         2
Run Code Online (Sandbox Code Playgroud)

执行计划

Plan hash value: 410557223

-------------------------------------------------------------------------
| Id  | Operation        | Name | Rows  | Bytes | Cost (%CPU)| Time     |
-------------------------------------------------------------------------
|   0 | SELECT STATEMENT |      |     2 |     4 |     1   (0)| 00:00:01 |
|   1 |  INDEX FULL SCAN | ID   | …
Run Code Online (Sandbox Code Playgroud)

sql oracle query-optimization

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

创建的递归 - 嵌套()

我试图解决一个"经典"动态编程问题.问题是 - 给定一个数字作为输入,生成可能的嵌套条件.

编辑:正如下面的temp所指出的,我将首先尝试使用递归对其进行排序,然后尝试使用动态编程.

即.如果n = 3

O/p
((()))
()()()
(())()
()(())
(()())
Run Code Online (Sandbox Code Playgroud)

我对这个问题的处理方法基于两个规则.

  1. 如果未达到最大数量(此处为3)且左侧括号的数量小于或等于右侧括号的数量,则添加"("括号).
  2. 仅在未达到最大数量且右括号数小于左括号数时才添加右括号.

从理论上讲,它们听起来是正确的,但它在下面的源头上是平坦的.请原谅硬编码.

编辑:我做了一些修改,并向解决方案移动了一英寸:)

 #include <iostream>
#include <vector>
#include <string>

using namespace std;

void printPar(int l,int r,string s)
{
    if(l > 3 || r > 3 || r >l)
        return;



    if(l==3 && r==3)
    {
        cout<<s<<endl;
        return;
    }
    else
    {

         if((l<3))
         {
            s+="<";
            l = l+1;
            printPar(l,r,s);
         }
          if(r<3 && r < l)
         {
             s+=">";
             r = r+1;
            printPar(l,r,s);
         }
       //  cout<<"Exiting "<<l<<" & "<<r<<" "<<s<<endl;
    } …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm recursion

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

STL - 复制混合容器

我想了解STL算法.

复制定义为:

template<class InputIterator, class OutputIterator>
  OutputIterator copy ( InputIterator first, InputIterator last, OutputIterator result )
Run Code Online (Sandbox Code Playgroud)

可以请一些人解释为什么当矢量和deques混合时以下工作有效但是当矢量和集合混合时失败.

#include <iostream>
#include <algorithm>
#include <vector>
#include <deque>
#include <deque>
#include <set>
using namespace std;

int main () {
  int myints[]={10,20,30,40,50,60,70};
  vector<int> myvector;
  vector<int>::iterator it;

  set<int> mset(myints,myints+8);
  set<int>::iterator setItr = mset.begin();




  deque<int> deq;
  deq.resize(10);
  deque<int>::iterator deqItr = deq.begin();
  myvector.resize(7);   // allocate space for 7 elements
  copy ( myints, myints+7, myvector.begin() );

  copy ( myvector.begin(), myvector.end(), deqItr );
  cout << "deque contains:";
  for (deque<int>::iterator …
Run Code Online (Sandbox Code Playgroud)

c++ stl

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

Unix时间戳到XML日期时间转换

是否有可用的C++ Library api将Unix时间戳转换为XML数据类型datetime

例如:

http://books.xmlschemata.org/relaxng/ch19-77049.html
Run Code Online (Sandbox Code Playgroud)

我希望转换成模式:2001-10-26T19:32:52 + 00:00

我也可以访问mysql,所以我可以得到:

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2010-09-28 14:47:47 | 
+---------------------+
Run Code Online (Sandbox Code Playgroud)

我找不到任何符合此功能的格式化功能.

我只是不喜欢字符串操作,除非没有出路....

干杯!

c++ xml mysql

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

Bitset程序C++

我好像在这里想念傻事.

int main() 
{ 
        /* 
        bitset<sizeof(int)*8> bisetInt(64); 
        cout<<"Sizeof is "<<sizeof(int)<<endl; 

        for(int i=0;i< sizeof(int)*8;i++) 
                cout<<bisetInt[i]<<endl; 
        //cout<<"no bits set are "<<bisetInt.count()<<endl; 
        */ 

        int num = 5; 
        int x = 1; 


        for (int i = 0;i < 5; i++) 
        {        
                x = x<<i; 
                cout<< (num & x)<<endl; 
                cout<<"value of  x is "<<x<<endl; 
        } 

        return 0; 
} 
Run Code Online (Sandbox Code Playgroud)

产出:

1
value of  x is 1
0
value of  x is 2
0
value of  x is 8
0
value of  x is 64
0
value …
Run Code Online (Sandbox Code Playgroud)

c++

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